【问题标题】:Error: "is not recognized as an internal or external command, operable program or batch file"错误:“不被识别为内部或外部命令、可运行程序或批处理文件”
【发布时间】:2022-01-22 18:19:09
【问题描述】:

每当我尝试从我的 Windows cmd.exe 终端运行 mycommand.exe 时,我都会收到此错误:

''mycommand.exe' 不是内部或外部命令、可运行程序或批处理文件'

那么

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

''C:\Program' 不是内部或外部命令、可运行程序或批处理文件'

【问题讨论】:

    标签: batch-file cmd


    【解决方案1】:

    这是 Stackoverflow 上非常常见的问题。

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

    快速细分为什么会收到此错误。

    cmd.exe 作为终端窗口依赖于输入和系统环境变量,以便执行您要求它执行的操作。它不知道所有内容的位置,也不知道何时区分由空格分隔的命令或可执行文件名称,例如 spacetab 或带有空格的命令切换变量。

    我该如何解决这个问题:

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

    首先我们确定,可执行文件真的安装了吗?如果是,继续其余的,如果不是,先安装它。

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

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

      "C:\My_Files\mycommand.exe"

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

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

    System Variables 窗口中,找到path 并选择edit

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

    ;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"
    

    【讨论】:

    • 有效!我必须重新启动电脑才能使更改生效。
    • @barto。无需重启电脑。您只需要关闭 cmd.exe 并重新打开它即可读取新环境。但很高兴这有帮助。 :)
    • @Gerhard 非常感谢您的解决方案,拯救了我的一天。通过设置脚本的完整路径,能够同时运行 npm 包。像魅力一样工作!
    【解决方案2】:

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

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

    如果在这些选项中的任何一个中都找不到该文件,您将需要:

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

    您可以从命令提示符Echo %Path% 查看%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 /D C:\directory_path_without_spaces\My-App Mobile.exe
    

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

    【讨论】:

    • 关于附加到路径 - 值得一提的是,您可以附加到用户路径,然后将其附加到系统路径。在很多网站上,如果不请求业务合理的管理员权限,您无论如何都无法更改系统设置,但您可以更改您的用户变量。
    • @William,我没有兴趣提供有关修改 %PATH% 变量内容的建议。我不希望给人的印象是,当其他选项可用时,我建议更改它们。 Gerhard 就如何更改该系统变量提供了一些建议,也许您的信息是针对他的!
    • 也许吧,但我对建议的反应非常谨慎,因为有两条路径需要两个级别的谨慎。
    • @William,我不提供建议,(我从不需要在任何版本的操作系统上更改变量内容)。如果您想添加一个新答案,并附上您对更改它的建议,请随意。
    猜你喜欢
    • 2018-01-02
    • 2015-04-28
    • 2016-06-19
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多