由於不想要使用腳本啟動 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://www.ptt.cc/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