使用文件中的cmd参数打开进程列表

时间:2012-08-20 12:59:06

标签: batch-file cmd

我有一个脚本,它将编写一个进程文件(当前是C:\ test.txt)(它检查来自预定义列表的进程)。

然后我运行了一些其他代码(不重要的是在这里做了什么,但这部分是为了结束这些进程)。

我的问题是,在我的脚本中,我需要能够重新启动已终止的进程,但是使用之前运行的cmd参数加载它们。

test.txt文件看起来像这样:

"C:\folder1\folder2\application1.exe" param1
"C:\folder1\folder2\folder3\application2.exe" param1 param2
"C:\folder4\application3.exe"
"C:\folder1\folder2\folder3\application4.exe" param1 param2 param3 param4
etc..

我使用for循环从文件中取出行并尝试运行它们;

for /f "usebackq tokens=1,* delims= " %%C in (C:\test.txt) do (
%%C %%D
)

这很好,除了脚本等待第一个进程完成(即再次终止),然后加载下一个进程,这些进程不会结束!

我尝试使用

start %%C %%D

但是我加载了一个带有文件路径的新CMD窗口,然后尝试运行名称来自%D的文件

使用;

start %%C %%C %%D

似乎确实有效,但我不知道为什么,而且我确信这不是正确的方法。

任何人都可以解释为什么这样做,而其他人没有,如果有正确的方法可以做到这一点?

由于

1 个答案:

答案 0 :(得分:2)

引号内的start命令后的第一个参数被视为“Window Title”。然后是命令和参数。

这就是为什么

start %%C %%D

不起作用%% C在引号内被视为窗口标题并尝试运行%% D命令。

这也应该有效:

start "" %%C %%D

请参阅:

start /?

Why can't I start programs in the command line without /d? (Windows 7x64)