我在 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 垫片,它试图推迟到另一个垫片。
出于某种原因,我手动用这样的 .exe 替换了curl
内部System32
文件以解决另一个问题(我知道这听起来很愚蠢)。我用实际的curl
可执行文件重新替换了它,现在它可以完美运行了。