2014-11-07 3 views
0

Мне нужна команда BACH, чтобы разрешить мне запускать файл в несколько папок. Этот исполняемый файл уже скопировал эти папки.Выполнение файла в нескольких папках

for /D %i in (C:\Teste\*) do Paint.bat %i 

выше команда сделала это, однако, он работает paint.bat, содержащиеся в папке «тест» для других вложенных папок, а не то, что «s право.

Вложенные папки уже содержат копию paint.bat. Мне нужна команда для выполнения каждой из этих копий. Это тот же файл, однако его нужно запускать в каждой папке.

ответ

0

Ваш код не переключает рабочую папку, ваш код всегда вызывает Bat-файл из одного места. Попробуйте

for /D %i in (C:\Teste\*) do pushd .&cd "%i"&call Paint.bat %i&popd 

Теперь я не могу проверить это, но я думаю, что это работает так: (. Pushd)

  • запомнить текущую папку в стеке текущую папку
  • переключатель на значение% я
  • выполнить Paint.Bat (он должен быть помещен в каждой вложенной)
  • восстановить текущую папку из стека (Popd)

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

+0

EXCELENTE ... но ... Как я могу предотвратить его выполняет функцию для папок, которые были выполнены? Если я создаю новую папку в «тесте», их функция снова выполняется во всех папках. Хотелось бы, чтобы он выполнялся только в каждой новой папке, добавленной в 'Test'. – Jones

+0

Самый простой способ - удалить скрипт (добавить del/Q Paint.bat после CALL). Тогда его вызов потерпит неудачу. –

0

Эмм ... я прав с:

FOR /D %I IN ("Anyfolder\*") DO 

:% Я буду Fullqualified Путь к каждой вложенной в "Anyfolder" (не глубже). Вы хотите выполнить файл «paint.bat», который находится в каждой папке - , а paint.bat должен быть пуст с полным доступом к этой папке, в которой он находится?

Так не только:

FOR /D %I IN ("Anyfolder\*") DO "%~I\paint.bat" "%~I" 

? Может быть, вы должны указать Start перед:

FOR /D %I IN ("Anyfolder\*") DO START "" "%~I\paint.bat" "%~I" 

(. Начало иногда делает проблемы, когда не doublequoting - или настройки - в WindowTitle)

Смежные вопросы