尽管 PATH 存在,CMD/Powershell 仍在错误的位置寻找“curl”可执行文件

尽管 PATH 存在,CMD/Powershell 仍在错误的位置寻找“curl”可执行文件

我在 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 垫片,它试图推迟到另一个垫片。

出于某种原因,我手动用这样的 .exe 替换了curl内部System32文件以解决另一个问题(我知道这听起来很愚蠢)。我用实际的curl可执行文件重新替换了它,现在它可以完美运行了。

相关内容