Переключатель RoboCopy для исключения папок верхнего уровня

У меня есть .bat, который копирует папки со сжатыми файлами с одного компьютера на NAS. После того, как они находятся на NAS я иду через экстракт затем удалить .Рар./застежка-молния etc. Я не хочу хранить сжатые файлы на NAS, поскольку он создает чуть больше, чем двойное пространство, но мне нужно оставить их на исходном компьютере. Моя проблема в том, что когда я запускаю пакетный файл, он повторно копирует все. Как я могу предотвратить повторное копирование каталогов, которые уже присутствуют, в то же время копируя новые каталоги и файлы в них?

Так что я хочу пропустить каталоги верхнего уровня, которые уже есть, независимо от содержимого.

12
задан Preston Smith
27.11.2022 16:43 Количество просмотров материала 2995
Распечатать страницу

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
  )
)
0
отвечен David Woodward 2022-11-29 00:31

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх