CMD/Powershell 在錯誤的位置尋找“curl”可執行文件,儘管有 PATH

CMD/Powershell 在錯誤的位置尋找“curl”可執行文件,儘管有 PATH

我在 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\System32curl實際位於的位置)放在 PATH 的開頭,但這不起作用。

令人困惑的是,where工作得很好並且沒有表現出任何奇怪的東西:

C:\Users\****>where curl
C:\Windows\System32\curl.exe

感謝任何幫助,如果我需要提供更多信息,請告訴我。

答案1

正如評論中所指出的,它確實在正確的位置運行curl,但可執行檔是一個Chocolatey shim,它試圖遵循另一個墊片。

由於某種原因,我手動用這樣的 .exe 替換了內部curlSystem32解決不同的問題(我知道這聽起來很愚蠢)。我用實際的可執行檔重新替換了它curl,現在它運作得很好。

相關內容