在命令中使用括号批处理循环

时间:2009-05-28 01:18:32

标签: batch-file for-loop escaping

我有一个包含以下代码的批处理文件:

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此时出乎意料”的错误消息,因为第二个括号实际上正在关闭FOR块。

我必须将(local)保留为/ S参数。
如何从dtsrun行中删除括号?

编辑:结果你可以在dtsrun中为local指定服务器。

但我仍然想要回答括号中的转义。

1 个答案:

答案 0 :(得分:4)

转义括号字符的解决方案是使用插入符号前缀^

所以它会读到:

/S^(local^)