Переключатель RoboCopy для исключения папок верхнего уровня
У меня есть .bat, который копирует папки со сжатыми файлами с одного компьютера на NAS. После того, как они находятся на NAS я иду через экстракт затем удалить .Рар./застежка-молния etc. Я не хочу хранить сжатые файлы на NAS, поскольку он создает чуть больше, чем двойное пространство, но мне нужно оставить их на исходном компьютере. Моя проблема в том, что когда я запускаю пакетный файл, он повторно копирует все. Как я могу предотвратить повторное копирование каталогов, которые уже присутствуют, в то же время копируя новые каталоги и файлы в них?
Так что я хочу пропустить каталоги верхнего уровня, которые уже есть, независимо от содержимого.
1 ответов
Я предполагаю, что вы используете пакетный сценарий старой школы windows, так как вы используете robocopy. Это может быть хорошей возможностью изучить PowerShell. Но, в духе фактического ответа на вопрос, как он был задан ... :)
можно попробовать с помощью цикла for до начала программы, как:
SET SOURCE_DIR=C:\Wherever\the\directories\are
SET TARGET_DIR=\nas\wherever\the\directories\are\going
FOR /D %%d IN ("%SOURCE_DIR%\*") DO (
IF NOT EXIST "%TARGET_DIR%\%%~nxd" (
ECHO Copying "%%~d%" ...
REM robocopy command for copying directory [ "%%~nxd" ] goes here
)
)
Другие вопросы command-line nas windows