批处理如何启动程序

moc*_*de8 3 cmd batch-file

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

我的批处理文件是:

START /D "C:\Users\me\AppData\Roaming\Test\Test.exe"
Run Code Online (Sandbox Code Playgroud)

当我运行它时,我只是得到了短暂的控制台闪烁,并且 Test.exe 没有启动。

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

我的批处理文件位于

C:\Users\admin\AppData\Roaming\run.bat"
Run Code Online (Sandbox Code Playgroud)

asc*_*pfl 9

有两个问题:

  1. /D选项仅定义起始或工作目录,但不定义要执行的程序。
  2. start命令将第一个引用的参数视为新窗口的标题。为了避免与其他参数混淆,请始终提供窗口标题(也可能为空)。

有两种解决方案,实际上并不完全等效:

  1. 删除该/D选项,因此使用当前工作目录:

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

    start "" /D "C:\Users\me\AppData\Roaming\Test" "Test.exe"
    
    Run Code Online (Sandbox Code Playgroud)