无忧启动论坛
标题: AutoShortcut - 批量创建快捷方式,智能识别绿色软件与主程序 [打印本页]
作者: 834772509 时间: 前天 17:18
标题: AutoShortcut - 批量创建快捷方式,智能识别绿色软件与主程序
本帖最后由 834772509 于 2025-9-14 15:02 编辑
介绍
AutoShortcut 是一款自动化快捷方式创建工具。专为高效管理软件快捷方式而设计。它能够智能识别各类软件目录结构,自动分析并创建最优的快捷方式,极大提升桌面和开始菜单的整洁度与使用效率。
AutoShortcut 的优势
- 智能识别:自动识别绿色软件、单文件应用并创建对应快捷方式
- 多维度评分:通过多维度评分算法识别主程序
- 丰富定制:支持模板命名、忽略规则、批量创建等高级功能
- 双模式支持:同时支持命令行和配置文件,满足不同使用场
- 多语言界面:内置中文、英文支持,易于国际化扩展
- 灵活配置:提供详细的配置选项,满足个性化需求
快速开始
本程序为命令行程序,故需要在其后面接参数运行,可通过cmd、PowerShell等终端来运行。
# 示例1: 扫描Program Files目录,在桌面创建所有程序的快捷方式
- AutoShortcut.exe "C:\Program Files" "%Desktop%"
复制代码
# 示例2: 扫描Program Files目录,在开始菜单创建快捷方式并按程序分类
- AutoShortcut.exe -d "C:\Program Files" "%Programs%"
复制代码
# 示例3: 扫描并自动运行指定软件(适用于绿色软件)
- AutoShortcut.exe -s "C:\Program Files\Everything"
复制代码
命令行用法
温馨提示:路径含空格请用引号
- Usage: AutoShortcut.exe [选项] ["程序路径"] ["快捷方式路径"] [--config "配置文件路径"]
复制代码基本使用
- AutoShortcut.exe "程序路径" "快捷方式路径"
复制代码- 创建桌面快捷方式: AutoShortcut.exe "C:\Program Files" %Desktop%
- 创建开始菜单快捷方式: AutoShortcut.exe "C:\Program Files" "%Programs%"
创建程序文件夹
- `AutoShortcut.exe -d "程序路径" "快捷方式路径"`
复制代码- AutoShortcut.exe -d "C:\Program Files" "%Programs%"
尝试安装软件
将自动运行软件目录内的: install.cmd/bat、setup.cmd/bat、绿化.cmd/bat
- AutoShortcut.exe -i "程序路径" "快捷方式路径"
复制代码- AutoShortcut.exe -i "C:\Program Files" "%Programs%"
运行程序
识别主程序后自动运行程序
- AutoShortcut.exe --start "程序路径"
复制代码使用原始文件名
设置快捷方式名称使用原始 exe 文件名
- AutoShortcut.exe --use-filename "程序路径" "快捷方式路径"
复制代码仅列出快捷方式
仅列出需要创建快捷方式的程序路径,不进行创建快捷方式操作。
- AutoShortcut.exe --list "程序路径" "快捷方式路径"
复制代码仅匹配配置文件
仅将配置文件中的快捷方式信息创建快捷方式
- AutoShortcut.exe --only-match "程序路径" "快捷方式路径"
复制代码评分阈值
设置绿色软件 exe 程序评分时的判定阈值(百分比),低于此分数则判定为没有主程序。默认值为0.3。
- AutoShortcut.exe --score-ratio 0.5
复制代码配置文件(可选)
AutoShortcut.exe [选项] ["程序路径"]["快捷方式路径"] [--config "配置文件路径"]
简介
为了更有效的创建快捷方式,满足用户个性化需求,可选的引入配置文件。配置文件包括以下功能:
- 全局配置工具选项;
- 配置创建方式信息(名称、命令行、图标等);
- 为未匹配的程序创建快捷方式;
使用方法:
- 新建文本文件,将后缀重命名为.toml
- 使用文本工具打开(如记事本等),填写相应的配置信息
全局设置
配置扫描中需要忽略的文件或目录,后续扫描目录/文件将忽略。默认值为系统特殊目录(如回收站目录等)。
- ignore = ["temp","Everything.exe", "D:\Everything"]
复制代码如设置为true则自动运行软件目录内的: install.cmd/bat、setup.cmd/bat、绿化.cmd/bat
如设置为true则不等待运行脚本执行完成,而是并行运行所有脚本。默认值为false。
配置安装软件的脚本文件类型(默认支持setup.cmd/bat、install.cmd/bat、绿化.cmd/bat)
# 示例:支持全部cmd、bat脚本
- scripts = ["*.cmd", "*.bat"]
复制代码如设置为true则所有快捷方式名称将使用原始 exe 文件名。
如设置为true则仅将配置文件中的快捷方式信息创建快捷方式,配置文件中未指定的快捷方式将不会创建。
设置为绿色软件 exe 程序评分时的判定阈值(百分比),低于此分数则判定为没有主程序,设置为0表示无阈值。默认值为0.3。
为了方便表示 Windows 路径,默认关闭转义功能,如需转义可通过配置开启。默认值为false。
快捷方式定义
本程序支持多种快捷方式属性写法,功能一致,可根据个人喜好自由选择。
配置项 | 说明 |
exec | 程序路径(必填),其它配置项均为可选项 |
name | 快捷方式名称 |
icon | 图标路径,支持相对路径(顺序为:程序所在路径、工作路径、系统路径),也支持指定图标索引如 shell32.dll#1 |
args | 命令行 |
work_dir | 工作路径(起始位置) |
dest | 快捷方式存放路径 |
window_state | 显示模式:normal(激活并显示) / minimized(最大化) / maximized(最小化) |
comment | 备注 |
- # 此处配置仅为字段说明
- [[shortcut]]
- name = "快捷方式名称"
- exec = "程序路径"
- work_dir="起始位置"
- args = "命令行参数"
- icon = "图标路径"
- dest = "快捷方式位置"
- window_state = "显示模式"
- comment = "备注"
复制代码
提示:内联模式中每一项快捷方式信息都必须在一行内,不可换行。
shortcut = [
# 此处配置仅为字段说明
{ name = "快捷方式名称", exec = "程序路径", work_dir="起始位置", args = "命令行参数", icon = "图标路径", dest = "快捷方式位置" },
# 示例
{ name = "Everything", exec = "Everything.exe" },
]
- # 配置快捷方式名称
- [name]
- "程序路径" = "快捷方式名称"
- # 示例
- "Everything.exe" = "Everything"
- # 配置快捷方式参数
- [args]
- "程序路径" = "命令行参数"
- # 示例
- "Everything.exe" = "-s example.txt"
- # 配置快捷方式起始路径
- [work_dir]
- "程序路径" = "起始路径"
- # 示例
- "Everything.exe" = "D:\Everything"
- # 配置快捷方式图标
- [icon]
- "程序路径" = "图标路径"
- # 示例
- "Everything.exe" = "D:\Everything\Everything.ico"
- # 配置快捷方式备注
- [comment]
- "程序路径" = "备注"
- # 示例
- "Everything.exe" = "文件搜索"
复制代码支持内置变量
在配置文件中支持使用环境变量和以下内置变量:
%CurDir% | 配置文件目录 |
%CurFile% | 配置文件名称 |
%CurDrv% | 配置文件驱动器 |
%Favorites% | 收藏夹全路径 |
%Personal% | 我的文档目录 |
%Programs% | 程序菜单目录 |
%SendTo% | 发送到目录 |
%StartMenu% | 开始菜单目录 |
%Startup% | 启动菜单目录 |
%QuickLaunch% | 快速启动栏 |
%Desktop% | 桌面目录名 |
%ProgramFiles% | 程序目录 |
%ProgramFiles(x86)% | 程序目录(32 位) |
|
|
纯配置模式
为了更好的满足个性化需求,除扫描模式外提供纯配置模式,纯配置模式将不进行目录扫描,仅根据配置文件所提供的信息来创建快捷方式。
提示:
- 纯配置模式下,exec(程序路径)、dest(快捷方式路径) 两项都必须填写;
- 命令行中无需传 <TARGET_PATH>(程序路径)、<LNK_PATH>(快捷方式路径);
- name(快捷方式名称)省略时将使用程序描述作为快捷方式名称;
- 同理支持配置项模式、内联模式、映射表模式三种写法
shortcut = [
# 此处配置仅为字段说明
{ name = "快捷方式名称", exec = "程序路径", args = "命令行参数", icon = "图标路径", dest = "快捷方式路径" },
# 示例:创建桌面快捷方式
{ name = "Everything", exec = "C:\Program Files\Everything\Everything.exe", dest = "%Desktop%" },
# 示例:使用程序名称作为快捷方式名称
{ exec = "C:\Program Files\Everything\Everything.exe", dest = "%Desktop%" },
]
快捷方式属性模板
提示:
- 快捷方式属性模板仅在[Template]配置项中生效。
AutoShortcut 提供强大的模板系统,使用规则模板来全局定义快捷方式的名称、图标等属性。模板处理分为两个阶段:
- 控制流阶段:先解析并执行表达式。
- 替换阶段:将剩余的占位变量替换为对应值。
1. 变量替换
提示:
- 模板中所有变量均需要用大括号 {} 包裹。
- 变量名区分大小写。
内置多种变量,可在模板中直接引用:
文件信息变量
变量 | 说明 |
{exec} | 完整路径,如 D:\Apps\WeChat\WeChat.exe |
{stem} | 文件名(不含扩展名) |
{ext} | 文件扩展名,如 exe |
{parent} | 程序父目录路径 |
{parent_name} | 程序父目录名称 |
{size} | 文件大小(字节) |
{size_kb} | 文件大小(千字节) |
{size_mb} | 文件大小(兆字节) |
{size_gb} | 文件大小(千兆字节) |
{size_tb} | 文件大小(太字节) |
{create_time} | 创建时间 |
{modify_time} | 修改时间 |
{access_time} | 访问时间 |
元数据变量(来自文件版本信息)
变量 | 说明 |
{product} | 产品名称(ProductName) |
{desc} | 程序描述(已清理非法字符) |
{desc_raw} | 原始程序描述 |
{arch} | 架构(x86/x64/arm64) |
{arch_num} | 架构数字(32/64/arm64) |
{version} | 文件版本 |
{company} | 公司名称(CompanyName) |
{orig_filename} | 原始文件名 |
{copyright} | 版权声明(LegalCopyright) |
|
|
2. 条件语法
- 条件(三元)语法:{cond ? then : else}、{条件变量 ? 条件成立时的内容 : 条件不成立时的内容}
- cond 为条件标识(不带花括号),当 cond 对应变量非空时渲染 then,否则渲染 else。支持取反:!cond。
- then 和 else 为模板片段,允许使用占位符(例如 desc、stem)。
- else 可省略(省略时不输出任何内容)。
- cond / then / else 内可包含其他模板(支持嵌套)。
示例:
- {arch_num ? arch_num + '位' : '未知位数'}: 如果 arch_num 存在用 arch_num 加上“位”,否则用“未知位数”。
- {product ? product : desc}: 如果 product 存在用 product,否则用 desc。
- 默认值语法: {var ?? default}、{变量 ?? 默认值}
- 当变量 var 非空时使用其值;为空时渲染 default(default 可为嵌套模板)。
- 等价于 {var ? var : default}。
示例:
- {product ?? desc}: 如果 product 存在用 product,否则用 desc。
- {desc ?? stem}: 如果 desc 存在用 desc,否则用 stem。
3. 过滤器语法
过滤器用于对变量进行处理,例如转换为小写、大写、标题等。语法: {var | filter: arg}
支持的过滤器:
- 转小写: {var | lower}
将字符串转换为小写。
例如 {desc | lower} 表示“将 desc 转换为小写”。 - 转大写: {var | upper}
将字符串转换为大写。
例如 {desc | upper} 表示“将 desc 转换为大写”。 - 首字母大写: {var | capitalize}
将字符串的第一个字符转换为大写,其他字符转换为小写。
例如 {desc | capitalize} 表示“将 desc 的第一个字符转换为大写,其他字符转换为小写。 - 标题: {var | title}
将字符串转换为标题大小写,即每个单词的首字母大写,其余字符小写。此标签不会将“无关紧要的单词”转换为小写。
例如 {desc | title} 表示“将 desc 转换为标题大小写”。 - 去除空格: {var | trim}
去除字符串首尾的空格。
例如 {desc | trim} 表示“将 desc 首尾的空格去除”。 - 计算字符串长度: {var | length}
计算字符串的长度(字符数)。
例如 {desc | length} 表示“计算 desc 的长度”。 - 删除文本: {var | cut:"str"}
删除字符串中的指定文本。
例如 {desc | cut:"微信"} 表示“将 desc 中的“微信”删除”。 - 替换文本: {var | replace:"old","new"}
替换字符串中的指定文本。
例如 {desc | replace:"微信","WeChat"} 表示“将 desc 中的“微信”替换为“WeChat””。 - 截断字符串: {var | truncate:10}
截断字符串为指定长度,超出部分省略。
例如 {desc | truncate:10} 表示“如果 desc 长度超过 10 个字符,截取前 10 个字符”。
若 desc 长度不超过 10 个字符,保持不变。 - 日期格式化: {var | date:"format"}
格式化日期变量。format 为日期格式字符串,例如 "{create_time | date:'%Y-%m-%d %H:%M:%S'}"。 支持的日期格式占位符:
- %Y:四位数年份(例如 2023)
- %m:月份(01-12)
- %d:日期(01-31)
- %H:24 小时格式小时(00-23)
- %M:分钟(00-59)
- %S:秒(00-59)
常用示例
[template]
name = "{product ?? stem}"
[template]
name = "{desc ?? stem} {version? 'v' + version : ''} {arch_num? arch_num + '位' : ''}"
说明:{version?'v' + version : ''} 表示有 version 就输出 'v' + version(注意前面的空格由模板控制)
[template]
icon = "D:\Icons\{stem}.ico"
comment = "{exec}"
关于 {cond ? then : else} 与 {var ?? default} 的选择
- {var ?? default} 通常更短、更直观,适合“如果变量为空则回退”场景(例如 product 缺失用 stem)。
- {cond ? then : else} 更灵活,可写更复杂的逻辑并包含 ! 取反。若只做“缺失回退”,优先使用 {var ?? default}。
示例配置
基础配置示例
- 配置快捷方式名称
shortcut = [
{ name = "文件搜索", exec = "Everything.exe"},
{ name = "文件复制", exec = "FastCopy.exe"},
]
only_match = true
shortcut = [
{ exec = "Everything.exe"},
{ exec = "FastCopy.exe"},
]
[template]
name = "{desc ?? stem} {version? 'v' + version : ''} {arch_num? arch_num + '位' : ''}"
纯配置模式示例
# 纯配置模式:不扫描目录,只创建指定的快捷方式
[[shortcut]]
name = "微信"
exec = "D:\Software\WeChat\WeChat.exe"
dest = "%Desktop%"
[[shortcut]]
name = "Chrome浏览器"
exec = "C:\Program Files\Google\Chrome\chrome.exe"
args = "--start-maximized"
dest = "%Programs%\浏览器"
常见问题
Q: 为什么某些程序没有创建快捷方式?
A: 可能的原因包括:
- 程序目录结构不合理
- 程序目录被添加到ignore列表中
- 绿色软件评分低于设定阈值(默认0.3)
- 使用--only-match模式但程序不在配置列表中
- 程序可能是后台服务而非GUI应用
Q: 如何自定义快捷方式的名称?
A: 有两种方法:
2.使用模板统一设置:[template]
name = "{stem}"
Q: 创建了不需要的快捷方式
A: 在 ignore =["dirname"] 中添加文件名或目录名。
开源许可
AutoShortcut 使用 MPL V2.0 协议开源,请尽量遵守开源协议。
致谢
- slore
- qq826773297
- liangnijian
下载地址
由于权限不足无法上传附件,请前往 https://github.com/FirTech/AutoShortcut/releases 下载(评论区置顶有附件)
作者: nyren 时间: 前天 17:27
感谢楼主的经验分享!
作者: 绿光科技 时间: 前天 18:03
这个软件优秀
作者: xzf 时间: 前天 18:14
工具软件呢,在哪里?
作者: wmyi 时间: 前天 18:15
谢谢分享
作者: wonderfully 时间: 前天 18:16
感谢分享
作者: 小灰兔 时间: 前天 18:20
感谢分享
作者: redapple 时间: 前天 18:27
下载地址呢?看着功能强大。
作者: liangnijian 时间: 前天 18:33
谢谢分享
作者: 燕飞龙 时间: 前天 18:35
谢谢分享
作者: 燕飞龙 时间: 前天 18:36
工具软件呢?
作者: yyz2191958 时间: 前天 18:38
好像用途广
作者: yyz2191958 时间: 前天 18:52
本帖最后由 yyz2191958 于 2025-9-13 19:44 编辑
AutoShortcut-x64.exe
-
-
AutoShortcut-x64.rar
478.43 KB, 下载次数: 16, 下载积分: 无忧币 -2
-
-
AutoShortcut-x86.rar
448.39 KB, 下载次数: 10, 下载积分: 无忧币 -2
作者: sairen139 时间: 前天 18:55
我帮楼主传一个上来
-
-
AutoShortcut-V2.0.0.zip
1.44 MB, 下载次数: 46, 下载积分: 无忧币 -2
作者: 奈绪 时间: 前天 18:57
非常不错的工具,感谢楼主分享。
作者: 201012121135 时间: 前天 19:00
谢谢分享
作者: wn168cn@163.com 时间: 前天 19:15
好工具 支持了
作者: martin313 时间: 前天 19:19
好工具 
PE外置利器
作者: 蘭蘭 时间: 前天 19:19
谢谢分享!
作者: 小龙飞 时间: 前天 21:40
感谢您的分享!
作者: cls822001 时间: 前天 21:42
谢谢分享
作者: Anson4 时间: 前天 21:45
感谢分享!
作者: hmaaaa 时间: 前天 23:20
感謝你無私的分享,感恩喔 ^^!辛苦了!
作者: dszsdyx 时间: 昨天 05:20
好东西,感谢教程。
作者: wang1126 时间: 昨天 06:39
谢谢楼主分享
作者: haoren108 时间: 昨天 07:06
本帖最后由 haoren108 于 2025-9-14 07:17 编辑
好工具!
PE/windows外置利器。出错:D:\PETOOLS>AutoShortcut.exe -d B:\ C:\App
信息 [绿色软件] B:\
警告 [访问失败] IO error for operation on B:\System Volume Information: 拒绝访问。 (os error 5)
警告 Access entry failed: IO error for operation on B:\System Volume Information: 拒绝访问。 (os error 5)
成功 [创建快捷方式] Wechat => B:\wechat\WechatCodec.exe
信息 [绿色软件] B:\7-Zip
成功 [创建快捷方式] 7-Zip => B:\7-Zip\7zFM.exe
信息 [绿色软件] B:\BaiduNetdisk
成功 [创建快捷方式] BaiduYunGuanjia Application => B:\BaiduNetdisk\BaiduNetdisk.exe
信息 [绿色软件] B:\bak
成功 [创建快捷方式] 7zS.sfx.exe => B:\bak\StartIsBack+_v1.7.6_Win81.exe
thread 'main' panicked at src\main.rs:1194:69:
called `Option::unwrap()` on a `None` value
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
作者: 834772509 时间: 昨天 09:37
haoren108 发表于 2025-9-14 07:06
好工具!
PE/windows外置利器。出错:D:\PETOOLS>AutoShortcut.exe -d B:\ C:\App
信息 [绿色软件] ...
这是一个常规BUG,-d 参数用于将程序创建在其父路径名称的文件夹中,后续版本将会修正为快捷方式根路径。示例中可以通过调整软件目录结构,将根目录中的程序存放到文件夹中。
作者: makoto23 时间: 昨天 12:01
谢谢分享
作者: ebaqiang 时间: 昨天 12:34
感谢分享
作者: 肉仔 时间: 昨天 13:01
谢谢你的分享,支持了
作者: handsome_xiang 时间: 昨天 19:35
感谢分享!
作者: 肉仔 时间: 5 小时前
好工具 支持了
作者: zts59 时间: 5 小时前
建议新增一个变量:%publicdesktop% 一般是%systemdrive%\users\public\desktop,注册表位置:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Common Desktop
欢迎光临 无忧启动论坛 (http://bbs.c3.wuyou.net/) |
Powered by Discuz! X3.3 |