Пакет для петли со скобкой в ​​команде

У меня есть командный файл со следующим кодом:

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.

Я должен оставить (локальный) в качестве параметра /S. Как мне избежать скобок в строке dtsrun?

2 ответа

Решение

Попробуйте заменить /S(локально) на /S% имя_компьютера% или /S. или /Slocalhost. Все это должно быть выполнено без использования паренов.

В качестве альтернативы, вы можете использовать символ ^, чтобы избежать скобок:

dtsrun / S ^ (местный ^) ...

спасибо отметка

При возможной потере читабельности вы можете поместить все эти команды в одну строку и избавиться от необходимости использовать скобки в цикле for.

for blah blah blah do command 1 && command 2 && command 3 && command 4
Другие вопросы по тегам