【问题标题】:Windows CMD.exe "The system cannot find the path specified."Windows CMD.exe“系统找不到指定的路径。”
【发布时间】:2012-10-30 06:44:46
【问题描述】:

通过将 Windows 恢复到以前的状态解决

消息(系统找不到指定的路径。)显示...

1) 当我打开新的 CMD (Win+R => cmd)。它从介绍开始。 (第 3 行)

Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.
The system cannot find the path specified.

C:\Users\ViliamKopecky>

2) 当我执行诸如cmd /C dir(或cmd /C php -v 或其他)之类的命令时(在第 2 行)

C:\Users\ViliamKopecky>cmd /C dir
The system cannot find the path specified.
 Volume in drive C is Windows7_OS
 Volume Serial Number is 8230-1246
...

C:\Windows\System32>cmd /C php -v
The system cannot find the path specified.
PHP 5.4.8 (cli) (built: Oct 16 2012 22:30:23)
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2012 Zend Technologies

3)(最烦人的)当我从 PHP 或 Node.js 或任何脚本语言运行 exec 函数时。 (可能从内部以cmd /C <command> 运行)

消息未显示...

1) 当我直接从 cmd (或 mingw, ...) 执行命令时

C:\Users\ViliamKopecky>dir
 Volume in drive C is Windows7_OS
 Volume Serial Number is 8230-1246

 Directory of C:\Users\ViliamKopecky

让我们从 cmd 的简单命令开始。

php -r "exec('dir', $stdout, $stderr); print(implode(\"\n\", $stdout), $stderr);"

结果是这样的(目录test是空的——没错)

E:\test>php -r "exec('dir', $stdout, $stderr); print(implode(\"\n\", $stdout), $stderr);"
The system cannot find the path specified.
 Volume in drive E is www
 Volume Serial Number is 0C99-95EC

 Directory of E:\test

09.11.2012  22:42    <DIR>          .
09.11.2012  22:42    <DIR>          ..
               0 File(s)              0 bytes
               2 Dir(s)  13 495 296 000 bytes free
int(1)

这表明dir 的命令已从php 正确执行。唯一错误的是第二行 - 系统找不到指定的路径。 - 不应该在那里。

此消息由 PHP 的 exec 输出(也从 Node.js 输出为 require('child_process').exec("dir", function(err, stdout, stderr) {console.log(stderr)});

当我直接从 cmd(或 mingw 等)执行命令时,它会在没有消息的情况下正确执行。环境变量 PATH 似乎没问题。问题只是通过 exec 函数从脚本环境执行。

如何摆脱烦人的信息?谢谢

【问题讨论】:

  • 那么失败的代码在哪里?
  • 这是消息 系统找不到指定的路径。 - 在较大的脚本中它显示了 50 次。
  • 啊……试试system而不是exec
  • systemshell_exec 都做同样的坏事。
  • 查看php.net/manual/en/function.exec.phpalvaro 的评论

标签: php windows cmd system exec


【解决方案1】:

问题是当您运行 cmd.exe 时某些程序已设置为自动运行。 在我的情况下,安装的是 ANSICON……然后我在没有正确卸载的情况下移动了文件。

我在这篇博文中找到了解决方案:

http://carol-nichols.com/2011/03/17/the-system-cannot-find-the-path-specified/

短版是找

HKCU\Software\Microsoft\Command Processor\AutoRun

并清除该值。

【讨论】:

  • ANSICON - 是的,我安装后问题就出现了。将您的答案标记为已接受。谢谢;)
  • 3 小时研究我的 drush 安装错误来自哪里,我发现它在 php exec 上失败后最终来到这里,是的,它是 ANSICON +1
  • 确保同时检查 HKLM\Software\Microsoft\Command Processor\AutoRun。特别是如果你有 Clink。
  • 谢谢!我有一个剩余的 conda 初始化钩子,它产生了这个错误,并在很远的地方产生了副作用。我花了一段时间才找到它,直到我终于到了这里!
  • 在我的例子中,它是 HKEY_CURRENT_USER\Software\Microsoft\Command Processor\AutoRun 而不是 HKCU\Software\Microsoft\Command Processor\AutoRun
【解决方案2】:

这实际上看起来像是 PHP 的启动错误,而不是您的代码。有没有

php -r "echo 1;"

也抛出同样的错误?如果是这样,您的 php.ini 文件或包含的路径可能不正确。

php -i

应该给你更多信息。

【讨论】:

  • 这运行正确C:\Users\ViliamKopecky&gt;php -r "echo 1;" 1
【解决方案3】:

此消息可能表示 PATH 环境变量中的路径不存在。

以下 PowerShell 命令将打印缺少的路径。

($env:path).Trim(";").Split(";") | ? {-not (test-path $_)}

例如

> ($env:path).Trim(";").Split(";") | ? {-not (test-path $_)}
C:\Program Files\CMake\bin
C:\Program Files\SDCC\bin
C:\Users\wjbr\AppData\Local\Programs\Microsoft VS Code\bin

参考文献

【讨论】:

    【解决方案4】:

    我认为你应该试试这个!我遇到了同样的问题并像这样解决了它:

    确定类型:cd\windows\system32 之后你会看到这个:System32/: 输入你想要的(例如:ipconfig): System32:ipconfig 那应该这样做! :)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-22
      • 2011-02-23
      • 2018-12-12
      相关资源
      最近更新 更多