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 此時意外”的錯誤消息,因為第二個括號有效地關閉了 FOR 塊。
我必須將 (local) 保留為 /S 參數。如何轉義 dtsrun 行中的括號?
嘗試將 /S(local) 替換為 /S%computername% 或 /S。或 /Slocalhost。所有這些都應該在不使用括號的情況下完成相同的事情。
或者,您可以使用插入符號 ^ 來轉義括號:
dtsrun /S^(本地^) …
謝謝,標記
在可能失去一些可讀性的情況下,您可以將所有這些命令放在同一行,並在您的 for 循環中消除對括號的需要。
for blah blah blah do command 1 && command 2 && command 3 && command 4