2015-10-14 2 views
0

Может ли кто-нибудь сказать мне эквивалентную команду .cmd для команды оболочки find -o -samefile?Эквивалент для find -o (shell) в .cmd

Я пытаюсь зацикливаться внутри папок для копирования файлов в другое место.

Мой первоначальный сценарий оболочки: для qapi_file в find . -type d -iname qapi_export -o -samefile qapi/common -o -samefile core/api; делать ср -p $ qapi_file/qapi * .h включает/qapi/

Я попытался сделать это: FOR/d %% I IN (DIR -i qapi_export qapi \ Common \ ядро ​​\ апи) делать (хсор/O% i% \ qapi * .h include \ qapi)

Это не работает, как я ожидаю. Если я использую для/d, он повторяется один раз и не возвращает файлы для копирования. С другой стороны, если я использую для/г для цикла становится бесконечным, и я не в состоянии разорвать петлю (я попытался с помощью Гото: EOF для этого, но он дает ошибку - Гото был неожиданным здесь)

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

ответ

0

Использование %% I вместо% I% и цикл через все поддиректории с/г будет делать трюк:

for /r . %%i in (.) do (
    xcopy /y/o %%i\qapi_export\qapi*.h include\qapi 
    xcopy /y/o %%i\qapi\common\qapi*.h include\qapi 
    xcopy /y/o %%i\core\api\qapi*.h include\qapi 
) >nul 
Смежные вопросы