Синтаксис для написания цикла внутри командного файла - PullRequest
2 голосов
/ 04 мая 2010

Я пытаюсь написать небольшой командный файл для задачи, которую выполняю регулярно. Я никогда не использовал for раньше, и я впервые пытаюсь это сделать. Это то, с чем я пришел до сих пор:

for /f %i in  ('ct find . -ver lbtype(%1) -print') do ct lsvt -g %i

Обычно он пытается найти все файлы с заданной меткой cleracase и затем отобразить дерево версий этих файлов. Проблема в %1. Но когда я пытаюсь запустить это когда-нибудь, это выдает мне сообщение о том, что -print ) не ожидалось, или в другое время он просто печатает эту команду в командной строке. Я предполагаю, что это становится запутанным между множественным парантезом. Любые подсказки, как я решаю это?

1 Ответ

3 голосов
/ 04 мая 2010

Попробуйте процитировать команду, которую вы выполняете в for:

for /f %i in  ('"ct find . -ver lbtype(%1) -print"') do ct lsvt -g %i

Это работало для моей команды, которая брала аргументы с паренсом.

Кроме того (как вы, вероятно, знаете), вам нужно будет удвоить символы '%' для переменной for, когда вы помещаете команду в командный файл вместо ее запуска в команде строка:

for /f %%i in  ('"ct find . -ver lbtype(%1) -print"') do ct lsvt -g %%i
...