2015-11-01 5 views
1

У меня есть папка в каталоге c: \ folders с около 6000 подкаталогами с разными номерами, и каждая подпапка имеет еще 2 подпапки, называемых «средний» и «большой палец».Пакетная копия конкретного файла во все каталоги и подкаталоги

Мне нужно скопировать файл index.html, который находится в папках c: \ во ВСЕХ 6000 папках и во всех средних и больших папках в каждой из 6000 папок.

Я пытаюсь построить некоторый пакетный код, как этот

for /D %%D in ("C:\folders\*.*") do (
pushd "%%~D" 
copy "index.html" 
copy "index.html" "medium\" 
copy "index.html" "thumbs\" 
popd 
) 

, но это не работает. Что я делаю не так?

+0

Проблема в том, что вы не указали полный путь к исходному файлу 'C: \ folders \ index.html', который является обязательным при изменении рабочего каталога в каждой итерации цикла' for'; остальная часть вашего кода должна быть в порядке ... – aschipfl

ответ

2

Это должно сделать работу, если это для каждой вложенной

set "source=full path of index.html" 
for /f "delims=" %%D in ('dir /b /s /ad "C:\folders\*") do (
    copy "%source%" "%%~D" 
) 

редактировать:
подавить вывод в консоли добавить >nul в copy командной строке
не перезаписывать файлы index.html, замените copy на echo n|copy /-y

set "source=full path of index.html" 
for /f "delims=" %%D in ('dir /b /s /ad "C:\folders\*") do (
    echo n|copy /-y "%source%" "%%~D">nul 
) 

http://ss64.com/nt/copy.html

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