У меня есть командный файл со следующим кодом:
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