2016-11-25 61 views
0

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

我的批处理文件是:

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

当我运行它,虽然我只获得了短暂的控制台闪光灯,将Test.exe启动不起来。

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

我的批处理文件位于

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

'/ D'装置开始目录。去掉它。 – Blorgbeard

+0

当我把它放在没有/ d时,我得到一个命令提示符窗口,但我的Test.exe没有启动 – mocode8

+1

它可能认为你的参数是一个标题(参见'start /?')。尝试'开始“”“”c:\ users \ me \ appdata \ roaming \ test \ test.exe“'。 – Blorgbeard

回答

-1

尝试改变这种

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

您将看到控制台闪光灯和你的程序应该启动。

更新

感谢@SomethingDark的建议,使用下面的代码。

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

但是,如果您的文件名包含空格,上述代码将不起作用。

+1

你有一个额外的报价和'/ D'标志不属于。 – SomethingDark

+0

@SomethingDark谢谢。 “/ D标志不属于”是什么意思? – active92

+0

这意味着取出并使用完整路径。 '开始'“”C:\ Users \ me \ AppData \ Roaming \ Test \ Test。exe' – SomethingDark

2

这里有两个问题:

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

有两个解决方案,这实际上是不完全等同:

  1. 取出/D选项,因此使用当前的工作目录:

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

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