我在 Windows 10 上使用 CMD 和 Powershell 時遇到一個奇怪的問題,這給我帶來了一些麻煩。一個不相關的腳本在運行時失敗curl
,經過一番調查,它看起來像是 CMD 和 Powershell 問題。
當我curl
在CMD中運行時,出現以下錯誤:
C:\Users\****>curl
Cannot find file at '..\\lib\curl\tools\curl-8.6.0_1-win64-mingw\bin\curl.exe' (C:\WINDOWS\lib\curl\tools\curl-8.6.0_1-win64-mingw\bin\curl.exe). This usually indicates a missing or moved file.
PowerShell 中也會發生同樣的情況,儘管在這種情況下我必須寫curl.exe
(普通curl
別名為Invoke-WebRequest
)。
該路徑不存在。它也不存在於 PATH (或任何其他環境變數)中,而且我無法弄清楚為什麼 CMD/Powershell 試圖在curl
那裡尋找。我嘗試將C:\Windows\System32
(curl
實際位於的位置)放在 PATH 的開頭,但這不起作用。
令人困惑的是,where
工作得很好並且沒有表現出任何奇怪的東西:
C:\Users\****>where curl
C:\Windows\System32\curl.exe
感謝任何幫助,如果我需要提供更多信息,請告訴我。
答案1
正如評論中所指出的,它確實在正確的位置運行curl,但可執行檔是一個Chocolatey shim,它試圖遵循另一個墊片。
由於某種原因,我手動用這樣的 .exe 替換了內部curl
以System32
解決不同的問題(我知道這聽起來很愚蠢)。我用實際的可執行檔重新替換了它curl
,現在它運作得很好。