![Windows 命令行:“未被识别为内部或外部命令、可运行程序或批处理文件。”](https://linux22.com/image/1357065/Windows%20%E5%91%BD%E4%BB%A4%E8%A1%8C%EF%BC%9A%E2%80%9C%E6%9C%AA%E8%A2%AB%E8%AF%86%E5%88%AB%E4%B8%BA%E5%86%85%E9%83%A8%E6%88%96%E5%A4%96%E9%83%A8%E5%91%BD%E4%BB%A4%E3%80%81%E5%8F%AF%E8%BF%90%E8%A1%8C%E7%A8%8B%E5%BA%8F%E6%88%96%E6%89%B9%E5%A4%84%E7%90%86%E6%96%87%E4%BB%B6%E3%80%82%E2%80%9D.png)
当我在 Windows 7 中运行 cmd(在 Windows 运行中输入'cmd'
)时,显示以下错误:
‘-p’ 不被识别为内部或外部命令、可运行程序或批处理文件。
我尝试检查环境变量中的 PATH。运行后echo %PATH%
得到以下结果:
C:\Windows\System32;C:\Windows;C:\Windows\System32\WindowsPowerShell\v1.0;C:\xampp\php;
我检查了 PATH 指向的所有目录。一切似乎都已就绪。我不明白的是 在哪里被'-p'
调用。我认为这与 有关系,cmd
因为它只在我调用时出现cmd
,而不是在我运行ipconfig
或时出现ping
。
答案1
您可能在注册表中设置了“AutoRun”命令。有两个注册表项,一个针对每个用户,一个针对每台计算机,它们可以定义每次cmd.exe
启动命令处理器 ( ) 时运行的命令。它们实际上列在 中cmd /?
。
无论如何,尝试运行cmd /d
并查看是否会产生相同的消息。该/d
标志表示“不运行 AutoRun 命令”,这非常适合测试这一点。
注册表值为:
HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\AutoRun
HKEY_CURRENT_USER\Software\Microsoft\Command Processor\AutoRun
勾选两者。默认情况下,两者都不应该存在。您可能希望修复您的命令字符串,甚至完全删除它们。
有关的:http://blogs.msdn.com/b/oldnewthing/archive/2007/11/21/6447771.aspx
或者,您可以设置一个批处理脚本或类似脚本cmd
,其名称为 ,而不是本机cmd
。尝试使用命令where cmd
打印出cmd
路径中的 列表,按执行顺序排列。如果 中除了 之外/之前还有C:\Windows\System32\cmd.exe
,您可能希望删除它们,或从 PATH 环境变量中删除它们的路径。