使用cmd / C执行复杂批处理命令

时间:2014-08-18 19:55:03

标签: batch-file

我试图运行

 @echo off & for /l %%a in (0) do TaskList /FI "IMAGENAME eq prog.exe" 2>NUL | Find "prog.exe" >NUL || (echo "update" & EXIT)

作为一个带

的单线
cmd.exe /C <----here -->

但cmd立刻崩溃了。当我将完全相同的命令放在批处理文件中时,它可以工作。 我如何格式化命令才能使其正常工作?

背景: 我尝试自我更新(也称为&#34;在运行时更换&#34;)ac#executable,而无需创建外部批处理脚本,但借助于&#34; cmd /C"。

1 个答案:

答案 0 :(得分:2)

由于您运行的代码不在批处理文件中,因此百分号不需要转义,因此,它不是%%a而是%a

需要引用完整命令

cmd /c "@echo off & for /l %a in (0) do TaskList /FI "IMAGENAME eq prog.exe" 2>NUL | Find "prog.exe" >NUL || (echo "update" & exit)"