本帖最后由 834772509 于 2025-9-13 18:41 编辑
介绍
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 = "备注"
复制代码
提示:内联模式中每一项快捷方式信息都必须在一行内,不可换行。 - # 配置快捷方式名称
- [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 位) |
|
|
纯配置模式 为了更好的满足个性化需求,除扫描模式外提供纯配置模式,纯配置模式将不进行目录扫描,仅根据配置文件所提供的信息来创建快捷方式。 - <font color="#1F2328"><font style="font-size: 10pt;">AutoShortcut.exe --config </font></font><font color="#1F2328"><font style="font-size: 10pt;">配置文件路径</font></font>
复制代码提示:
- 纯配置模式下,exec(程序路径)、dest(快捷方式路径) 两项都必须填写;
- 命令行中无需传 <TARGET_PATH>(程序路径)、<LNK_PATH>(快捷方式路径);
- name(快捷方式名称)省略时将使用程序描述作为快捷方式名称;
- 同理支持配置项模式、内联模式、映射表模式三种写法
快捷方式属性模板 提示:
- 快捷方式属性模板仅在[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)
常用示例 说明:{version?'v' + version : ''} 表示有 version 就输出 'v' + version(注意前面的空格由模板控制) 关于 {cond ? then : else} 与 {var ?? default} 的选择 - {var ?? default} 通常更短、更直观,适合“如果变量为空则回退”场景(例如 product 缺失用 stem)。
- {cond ? then : else} 更灵活,可写更复杂的逻辑并包含 ! 取反。若只做“缺失回退”,优先使用 {var ?? default}。
示例配置 基础配置示例 - <blockquote><blockquote>only_match = true
复制代码纯配置模式示例 - <blockquote># 纯配置模式:不扫描目录,只创建指定的快捷方式
复制代码常见问题 Q: 为什么某些程序没有创建快捷方式? A: 可能的原因包括: - 程序目录结构不合理
- 程序目录被添加到ignore列表中
- 绿色软件评分低于设定阈值(默认0.3)
- 使用--only-match模式但程序不在配置列表中
- 程序可能是后台服务而非GUI应用
Q: 如何自定义快捷方式的名称? A: 有两种方法: 2.使用模板统一设置:
Q: 创建了不需要的快捷方式 A: 在 ignore =["dirname"] 中添加文件名或目录名。 开源许可 AutoShortcut 使用 MPL V2.0 协议开源,请尽量遵守开源协议。 致谢 - slore
- qq826773297
- liangnijian
下载地址
由于权限不足无法上传附件,请前往 https://github.com/FirTech/AutoShortcut/releases 下载
|