如何从批处理文件中运行命令并立即返回?

时间:2015-01-29 10:19:51

标签: windows batch-file cmd tortoisegit

当我在命令行上并执行此操作时:

"C:\Program Files\TortoiseGit\bin\TortoiseGitProc.exe" /command:log

打开TortoiseGit的GUI对话框,cmd.exe立即返回,这意味着我可以立即运行其他命令,如dir等。

因为前面提到的命令很长,所以我创建了一个帮助程序批处理文件tgit.cmd,它只包含这个:

@echo off
"C:\Program Files\TortoiseGit\bin\TortoiseGitProc.exe" /command:%1 %*

我现在可以只调用 tgit log 这很好,但是,有一点不同:命令行被阻止,直到我关闭TortoiseGit对话框。

我也试过

cmd /C "C:\Program Files\TortoiseGit\bin\TortoiseGitProc.exe" /command:%1 %*

但这并没有任何区别。如何立即从批处理文件返回?

2 个答案:

答案 0 :(得分:8)

奥斯卡的答案几乎是正确的,但需要更正

start "" "C:\Program Files\TortoiseGit\bin\TortoiseGitProc.exe" /command:%1 %*

为什么?

start命令有一个奇怪的行为:第一个引用的参数用于确定新cmd窗口的标题,不,不重要{{1}窗口将被启动。第一个引用的论点是标题。

这就是上一代码中空双引号的原因。没有它,cmd命令看到的是

start

并且由于start "title=c:\Progra..." /command:.... 命令不包含start开关,它会失败。

答案 1 :(得分:-1)

使用START运行命令。

start "C:\Program Files\TortoiseGit\bin\TortoiseGitProc.exe" "/command:log"