错误:“未被识别为内部或外部命令,可执行程序或批处理文件”

54
每当我在Windows的cmd.exe终端中运行mycommand.exe时,我都会收到以下错误信息:

"mycommand.exe"未被识别为内部或外部命令、可操作的程序或批处理文件。

其次
当我尝试运行C:\Program Files\My-App\Mobile.exe时,也遇到了类似的错误:

"C:\Program"未被识别为内部或外部命令、可操作的程序或批处理文件。

3个回答

64

这是Stackoverflow上经常出现的问题。

这里重要的部分不是错误中显示的命令,而是实际错误所告诉你的内容。

以下是为什么会出现此错误的简要说明。

cmd.exe 是一个终端窗口,依赖于输入和系统环境变量来执行你请求它做的事情。 它并不知道所有内容的位置,也不知道何时区分由空格(如空格tab)分隔的命令或可执行文件名或包含空格作为开关变量的命令。

 

如何修复这个问题:

当实际命令/可执行文件失败时

首先要确保,该可执行文件实际上已安装?如果是,则继续进行剩余操作;如果没有,请先安装。

如果您正在尝试从cmd.exe运行任何可执行文件,则需要告诉cmd.exe该文件位于何处。 有两种方法可以做到这一点。

  1. 指定文件的完整路径。

    "C:\My_Files\mycommand.exe"

  2. 将文件位置添加到环境变量中。

 

进入:
  ------> 控制面板->系统->高级系统设置->环境变量

系统变量窗口中,找到path并选择编辑

现在只需将您的路径添加到字符串末尾,用分号;分隔:

;C:\My_Files\

保存更改并退出。您需要确保关闭并重新打开所有已经打开的 cmd.exe 窗口,以便重新导入环境变量。 现在,您应该能够在任何路径下,在 cmd.exe 中运行 mycommand.exe,因为环境已经知道它的路径。

如果出现类似于 C:\Program 的错误

这是一个非常简单的错误。在 cmd.exe 终端中,每个空格后面的字符串都被视为不同的命令,您只需用双引号将整个路径括起来,以使 cmd.exe 将其视为单个字符串,而不是多个命令。

因此,要执行 C:\Program Files\My-App\Mobile.exe,只需运行:

"C:\Program Files\My-App\Mobile.exe"

1
可以了!我不得不重新启动电脑才能生效。 - user3187724
4
@barto,无需重启电脑。你只需要关闭cmd.exe并重新打开它,让它读取新的环境变量即可。但很高兴这有所帮助。 :) - Gerhard
1
@Gerhard 非常感谢您提供的解决方案,救了我的一天。通过设置脚本的完整路径,我们能够并行运行npm包。非常好用! - Vlad K.
那对我有用。愚蠢的双引号...但这很有道理。谢谢。 - unpantofar

10

当你想从命令提示符(cmd.exe)或批处理文件运行可执行文件时,它会:

  • 在当前工作目录中搜索可执行文件。
  • %PATH%环境变量指定的所有位置中搜索可执行文件。

如果文件不在这两个选项中找到,则需要执行以下操作之一:

  1. 指定可执行文件的位置。
  2. 将工作目录更改为包含可执行文件的目录。
  3. 通过附加它来将位置添加到%PATH%(仅建议极度谨慎)

您可以从命令提示符查看在%PATH%中指定的位置:Echo %Path%

由于报告错误,我们可以假设Mobile.exe不在当前目录或%Path%变量指定的任何位置,因此您需要使用1.2.3.


1.指定位置的示例

C:\directory_path_without_spaces\My-App\Mobile.exe

或者:

"C:\directory path with spaces\My-App\Mobile.exe"

或者您可以尝试:

Start C:\directory_path_without_spaces\My-App\Mobile.exe
或者
Start "" "C:\directory path with spaces\My-App\Mobile.exe"

在标题为空的情况下,可以在这些双引号之间可选地添加字符串。

2.的示例:

CD /D C:\directory_path_without_spaces\My-App
Mobile.exe
或者
CD /D "C:\directory path with spaces\My-App"
Mobile.exe
你也可以使用 /D 选项与 Start 一起使用,将可执行文件的工作目录更改为由"start"命令运行的目录。
Start /D C:\directory_path_without_spaces\My-App Mobile.exe
或者
Start "" /D "C:\directory path with spaces\My-App" Mobile.exe

关于路径追加 - 值得一提的是,您可以将内容追加到用户路径中,然后该路径将被追加到系统路径中。在许多站点上,您无法更改系统设置,除非请求业务合理化的管理员权限,但您可以更改用户变量。 - William Robertson
1
@William,我对修改%PATH%变量内容的建议不感兴趣。如果有其他选项可用,我不希望给人留下改变它们的印象。Gerhard提供了一些关于如何更改系统变量的建议,也许您的信息是针对他的! - Compo
1
也许是吧,但我是在回应“只建议极度谨慎使用”,因为有两条路径都值得采取不同程度的谨慎。 - William Robertson
1
@William,我不提供建议,(我从未需要更改该变量内容,在任何操作系统版本上)。如果您希望添加新答案,并提供有关更改的建议,请随意。 - Compo

1

当您遇到这个问题时

  1. 搜索环境变量

enter image description here

  • 点击环境变量
  • enter image description here

    在"系统变量"下搜索PATH并点击编辑。

    enter image description here

    1. 点击“新建”,添加程序路径并保存 输入图像描述

    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接