【问题标题】:"'C:\Program' is not recognized as an internal or external command" error when using Azure CLI使用 Azure CLI 时出现“'C:\Program' 未被识别为内部或外部命令”错误
【发布时间】:2020-08-30 14:51:39
【问题描述】:

有时我在运行各种命令时遇到问题(我正在使用 Git Bash,如果这很重要的话)。例如,当我尝试执行时:

az container exec --resource-group My-RG --name influxdb-container --exec-command "/bin/bash"

上面的命令通常应该“SSH”到 Azure 容器实例。然而,相反,我得到:

'C:\Program' 未被识别为内部或外部命令, 可运行的程序或批处理文件。

我发现很多关于 SO 的帖子都有这样的错误,但是,这些帖子中的问题是关于在没有正确引用“C:\Program Files”的情况下调用命令。然而,就我而言,任何地方都没有“程序文件”,所以我很难找出问题所在。

az 命令被 shell 识别,当我单独调用它时,我会从 Azure CLI 得到正确的响应。

我有时在运行 docker 命令时也会遇到类似的错误。不幸的是,现在我不知道究竟是哪个命令会导致这种情况。

这个问题只发生在我的 Windows 机器上。当我从 Linux 或 macOS 运行命令时,它就可以正常工作。

错误截图:

az 有效的证明:

【问题讨论】:

  • 这可能是引用错误,但它会从您的环境变量或我猜想的注册表中获取未引用的字符串,并且无论出于何种原因都无法正确处理它。我没有任何好的想法从哪里开始寻找。 azure-cli 是否有任何明显的配置可以检查 C:\Program Files\ 的实例?
  • @Rup 我浏览了%USERPROFILE%\.azure 并没有看到类似的东西。
  • /bin/bash 是脚本文件吗? (.cmd 或 .bat)
  • @avery_larry "/bin/bash" 是我想在我的 Azure 容器实例中运行的程序
  • 请原谅我不熟悉 Azure CLI。但是,我试图找出 /bin/bash 是否是您可以访问的物理文件。如果是,那么我想知道它是 bash.cmd 或 bash.bat 还是 bash.pl 或 bash.exe 或 bash.com 或其他什么。或者您可以使用记事本打开文件并查看其中是否有任何未引用的“c:\program files”行。

标签: bash cmd git-bash azure-cli azure-cli2


【解决方案1】:

对于 Azure CLI,Linux 和 Windows 之间存在一些不同之处。但是,仍然有一些配置是相同的。你也可以设置环境变量PATH和Linux一样。

在Linux中,az命令在路径/usr/bin/中,该路径也设置了环境变量PATH。然后az命令可以被shell识别。因此在 Windows 中也是如此,您也可以在环境变量 PATH 中附加 Azure CLI 的路径。截图是我这边的配置:

那么az命令也可以被CMD识别:

但您也可以在 Windows 中使用 WSL,并获得与 Linux 中相同的 Azure CLI 体验。

【讨论】:

  • 我读到这个问题,因为 az ais 已经在路径中,但问题正在运行 az container exec 使用损坏的路径生成另一个进程。
  • @Rup 我不这么认为。为什么在 Windows 容器中运行 Azure CLI?而且他也知道az container exec命令只支持单条命令。
  • 是的,“az”在路径中,我能够成功运行它。就像@Rup 提到的那样,我在运行我粘贴在问题中的特定命令时遇到问题。
  • @CharlesXu 我不使用“Windows 容器”。我正在运行 az 命令,希望正常安装 Windows 10。
  • @Loreno 当然,这就是我在答案中所说的。鲁普在容器里说,不是我。所以你只需要按照答案。
猜你喜欢
  • 1970-01-01
  • 2016-07-11
  • 1970-01-01
  • 1970-01-01
  • 2021-06-12
  • 2023-03-11
  • 1970-01-01
  • 1970-01-01
  • 2015-09-19
相关资源
最近更新 更多