作者falcon (falken)
看板Windows
标题Re: [问题] 安装 Console 应用程式
时间Wed Jul 29 22:46:40 2026
由於不想要使用脚本启动 shell 并同时设定执行环境的环境变数 PATH
突然缺什麽工具还要手动加入路径
还是全部加进系统的环进变数 PATH 方便
但随着环境变数 PATH 内容越来越膨胀
感觉到这样继续下去不行
总有一天会突破环进变数内容长度限制
後来发现社群早有现成的解决方案
专案名称是 Shim
https://github.com/ScoopInstaller/Shim
使用方式:
1. 将 shim.exe 改名为与目标相同,例如 ffmpeg.exe
2. 建立同名 Shim 组态设定档,例如 ffmpeg.shim
3. 储存内容 path = 目标路径,如下所示
path = C:\ConsoleApps\ffmpeg\bin\ffmpeg.exe
然後就可以呼叫 shim.exe 改名的 ffmpeg.exe
它会把参数转发给 真正的 ffmpeg.exe
简单来说它就是个「命令转发器」
这麽一来
不需要把所有程式档案都混放在同一目录下
只要建立目标程式的「命令转发器」并集中於同一目录
例如 C:\Shims
然後只要将这个目录加入环进变数 PATH
比 bat 好的地方就是它可以用於只能呼叫 exe 档案情境
看起来多麽美好...
但它的行为在防毒软体 (Bitdefender) 眼里就是个伪装的恶意程式
如果不是这问题,它就是唯一的最佳解了
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 39.9.38.45 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Windows/M.1785336404.A.828.html
原来 scoop 有提供 shim 的管理工具
使用这种方式似乎防毒软体的信赖度比较高
# 安装
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
Invoke-RestMethod -Uri
https://get.scoop.sh | Invoke-Expression
# 建立 shim
scoop shim add ffmpeg 'E:\ConsoleApps\ffmpeg\bin\ffmpeg.exe'
※ 编辑: falcon (39.9.38.45 台湾), 07/30/2026 00:44:24
1F:推 smallreader: Shim核心是用潮语言Zig写的XD 07/30 09:04
2F:→ smallreader: 哦误会了是C++程式码用Zig编译器编的 感谢分享 07/30 09:13
3F:推 smallreader: 看来 不妨抛开winget改用scoop 07/30 09:40
4F:→ smallreader: 一直以来对winget经常只是去下载安装档来执行很感冒 07/30 09:44