Примеры упрощают понимание требований к задаче для всех.
Итак, позвольте мне начать с примера.
Исходный каталог C:\test1
содержит следующие файлы:
- Test1.txt
- Test2.txt
- Test3.txt
Целевой каталог дерево C:\test2
содержит следующие каталоги и файлы:
Для этого примера просто скопировать файл Test1.txt
в каталогC:\test2
, поскольку Test2.txt
и Test3.txt
уже существуют во вложенных папках C:\test2
.
Таким образом, каталог tree C:\test2
должен выглядеть следующим образом после выполнения пакетного файла:
- Подпапка1
- Подпапка2
- Test1.txt
Это может быть достигнуто с помощью:
@echo off
for %%I in ("C:\test1\*") do (
dir "C:\test2\%%~nxI" /A-D /B /S >nul 2>nul
if errorlevel 1 copy "%%I" "C:\test2\" >nul
)
Это также возможно сделатьс одной командной строкой :
@for %%I in ("C:\test1\*") do @dir "C:\test2\%%~nxI" /A-D /B /S >nul 2>nul || copy "%%I" "C:\test2\" >nul
Для понимания используемых команд и их работы откройте окно командной строки, выполните там следующие команды и полностью прочитайте все отображаемые страницы справки.для каждой команды очень тщательно.
dir /?
copy /?
echo /?
for /?
if /?