-1

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

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

1 ответ1

0

Я предполагаю, что вы используете пакетные сценарии 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
  )
)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .