Скопируйте определенный файл из исходного каталога в целевой каталог и подкаталоги, используя пакетный скрипт - PullRequest
0 голосов
/ 12 октября 2018

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

Я пытался использовать robocopy, но у него есть только возможность дефилировать уровень по источнику, а не по цели

Это то, что я пробовал до сих пор с robocopy и простым пакетом

:: copies to only one target directory
robocopy "%SOURCE_FILE_DIR_PATH%" "%TARGET_ROOT_FOLDER_PATH%" %FILE_NAME%
:: copies to only 1 sub-level
for /f "delims=" %%a in ('dir /b "%TARGET_ROOT_FOLDER_PATH%"') do (
    for /f "delims=" %%b in ('dir /b "%TARGET_ROOT_FOLDER_PATH%\%%a"') 
    do (
        copy /y "%FILE_NAME%" "%TARGET_ROOT_FOLDER_PATH%\%%a\%%b"    
    )
)

1 Ответ

0 голосов
/ 12 октября 2018

Вы можете комбинировать опции /D и /R для итерации дерева каталогов.Поэтому я думаю, что это сработает для вас.

set "TARGET_ROOT_FOLDER_PATH=C:\folder\subfolder"
set "FILE_NAME=foo.txt"
FOR /D /R "%TARGET_ROOT_FOLDER_PATH%" %%G IN (*) DO COPY /y "%FILE_NAME%" "%%G"

Вы можете немного изменить свой код, чтобы использовать параметры /AD и /S команды DIR.

for /f "delims=" %%G in ('dir /ad /b /s "%TARGET_ROOT_FOLDER_PATH%"') do copy  "%FILE_NAME%" "%%G"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...