Похожие вопросы

Попытался установить ZSH через cygwin, а затем попытался использовать zsh через Cmder
Как запустить fsck вручную
"C:/Perl64/bin/' не распознается как внутренняя или внешняя команда, действующая программа или пакетный файл
Можно ли отключить звук компьютера через интерфейс командной строки? [дубликат]
Клиенты чата jabber командной строки для windows?
Найти все файлы на сервер с правами 777
Команда командной строки (cmd) для блокировки компьютера windows
Бесконечный цикл в терминале (ksh) для запуска команд
Проблемы при установке пароля учетной записи локального администратора не разрешено изменять
Windows.bat создавать папки, а затем удалить.Bat-файл
Не удалось запустить службу PSEXESVC на [Имя_компьютера]: доступ запрещен
Запуск VLC через командную строку для воспроизведения видео в качестве обоев рабочего стола
Топ показывает % CPU> 100?
изменение владельца файлов в bash-скрипт
Как извлечь вложения из файлов EML с помощью командной строки Windows?

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

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

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

5
задан Preston Smith
источник

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 2016-10-11 08:15:28
источник

Другие вопросы command-line nas windows