在命令中用括号批量循环

我有以下代码的batch file

for /f "tokens=*" %%a in ('dir /b /a-d') do ( echo Processing %%a >>%LOG% dtsrun /S(local) /NNotesLoad /A"FilePath:8="%NOTESDIR%\%%a" /AClientID=%1 >>%LOG% echo Deleting %%a >>%LOG% del %%a /q ) 

这是返回“/ NNotesLoad在这个时候是意外的”错误消息,因为第二个括号有效closuresFOR块。

我必须离开(本地)作为/ S参数。 我如何逃避dtsrun行中的括号?

尝试用/ S%计算机名%或/ Sreplace/ S(本地)。 或/ Slocalhost。 所有这些都应该使用parens完成相同的事情。

或者,你可以使用脱字符^来逃跑:

dtsrun / S ^(local ^)…

谢谢,马克

在可能丢失某些可读性的情况下,可以将所有这些命令放在同一行,并废除for循环中的括号。

 for blah blah blah do command 1 && command 2 && command 3 && command 4