批处理如何启动程序

时间:2016-11-25 02:56:42

标签: batch-file cmd

我想创建一个批处理文件,以便在对自身进行一些更改后启动我的可执行文件。

我的批处理文件是:

START /D "C:\Users\me\AppData\Roaming\Test\Test.exe"

当我运行它时,我只是得到一个简短的控制台闪存并且Test.exe没有启动。

我已经验证了目录中的EXE。 我手动启动了exe以验证它是否正常工作。

我的批处理文件位于

C:\Users\admin\AppData\Roaming\run.bat"

4 个答案:

答案 0 :(得分:2)

有两个问题:

  1. /D选项仅定义起始或工作目录,但不定义要执行的程序。
  2. start命令将第一个引用的参数视为新窗口的标题。为避免与其他参数混淆,请始终提供窗口标题(也可能为空)。
  3. 有两种解决方案,实际上并不完全等效:

    1. 删除/D选项,以便使用当前工作目录:

      start "" "C:\Users\me\AppData\Roaming\Test\Test.exe"
      
    2. 保留/D选项并明确提供要使用的新工作目录:

      start "" /D "C:\Users\me\AppData\Roaming\Test" "Test.exe"
      

答案 1 :(得分:0)

将所有长度超过一个单词的目录名称都用引号引起来。因此,以下路径:

   start C:\Program Files\MySQL\MySQL Workbench 8.0 CE\MySQL.exe

应该变成这样:

   start C:\"Program Files"\MySQL\"MySQL Workbench 8.0 CE"\MySQL.exe

答案 2 :(得分:0)

尝试使用以下命令。将其添加到批处理脚本中。请注意,如果路径字符串中有空格,则必须在 start 关键字后添加双引号。

start "" "C:\Users\me\AppData\Roaming\Test\Test.exe"

答案 3 :(得分:-1)

尝试更改为

start /d "C:\Users\me\AppData\Roaming\Test" Test.exe

您将看到控制台闪存,您的程序应该启动。

<强>更新

感谢@SomethingDark建议使用以下代码。

start "" C:\Users\me\AppData\Roaming\Test\Test.exe

但是,如果您的文件名包含空格,则上述代码将无效。