作者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/m.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