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

Batch file 使用cmd/C执行复杂的批处理命令,batch-file,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.exe/C 但cmd立即崩溃。当我将完全相同的命令放在批处理文件中时,它就工作了。 我需要如何格式化命令才能使其工作 背景

我想跑

 @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.exe/C
但cmd立即崩溃。当我将完全相同的命令放在批处理文件中时,它就工作了。 我需要如何格式化命令才能使其工作

背景:
我试图在不创建外部批处理脚本的情况下,借助“cmd/c”对c#可执行文件进行自我更新(也称为“运行时替换”)。

由于您正在运行的代码不在批处理文件中,因此不需要转义百分号,因此,它不是
%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)"

哎呀,是我的错。谢谢。