Вопрос или проблема
Я пытаюсь скопировать файлы с помощью robocopy без вывода в консоль. В данный момент robocopy записывает все в файл логов, что нормально, но после завершения выводится Файл лога: C:\<logfiledestination>
. Моя команда выглядит так:
robocopy source destination /mir /xd .svn /log:log.txt /np >nul 2>&1
.
Поиск в интернете подсказывал, что >nul 2>&1
должен был предотвратить вывод чего-либо. Я совершенно нов в командной строке Windows, так что если я что-то делаю не так, пожалуйста, дайте знать!
Правка: У меня была полусложенная фраза, которую я пропустил. Теперь исправлено.
Эти ключи сработали для меня:
/NFL : Нет списка файлов - не записывать имена файлов.
/NDL : Нет списка директорий - не записывать имена директорий.
/NJH : Нет заголовка задания.
/NJS : Нет сводки задания.'
Похоже, эти две опции могут быть полезны для вас:
/NJH :: Нет заголовка задания.
/NJS :: Нет сводки задания.
"/NFL", // Не логировать файлы
"/NDL", // Не логировать директории
"/NJH", // Нет заголовка задания
"/NJS", // Нет сводки задания
"/NP" // Без прогресса // ЭТА ОПЦИЯ ДОПОЛНИТЕЛЬНАЯ, НЕ ПОКТАЖЕТ ПРОГРЕСС
Ответ или решение
Для выполнения задачи по копированию файлов с использованием утилиты Robocopy в режиме полной тишины, необходимо тщательно продумать параметры, используемые в команде. Проблема заключается в том, что даже несмотря на ведение лог-файла, команда Robocopy выводит некоторую информацию в конце выполнения, в том числе информацию о расположении лог-файла.
Решение
Для того чтобы сделать выполнение команды Robocopy полностью "тихим", нужно использовать несколько ключевых параметров, которые убирают ненужные выводы. Ваша команда может выглядеть следующим образом:
robocopy source destination /mir /xd .svn /log:log.txt /NFL /NDL /NJH /NJS /NP >nul 2>&1
Объяснение параметров:
- /mir – зеркалирует каталог, включая создание и удаление подкаталогов.
- /xd .svn – исключает директории с именем .svn из копирования.
- /log:log.txt – записывает итоговые результаты выполнения команды в файл log.txt.
- /NFL – отключает логирование имен файлов, что позволяет избежать их вывода в лог-файл.
- /NDL – отключает логирование имен директорий.
- /NJH – отключает вывод заголовка задания.
- /NJS – отключает вывод итогового отчета задания.
- /NP – отключает вывод прогресса копирования.
- >nul 2>&1 – перенаправляет стандартный вывод и вывод ошибок в нулевой поток, то есть полностью подавляет любой вывод в консоль.
Рекомендации
- Перед тем как запускать команду, убедитесь, что у вас достаточно прав для чтения из источника и записи в целевую директорию.
- Всегда полезно протестировать команду с флагом
/L
(тестовый режим), чтобы убедиться в правильности параметров перед реальным копированием. Например:
robocopy source destination /mir /xd .svn /log:log.txt /NFL /NDL /NJH /NJS /NP /L
Это позволит увидеть, какие операции будут выполнены, без фактического копирования файлов.
Заключение
Используя предложенные параметры, вы сможете добиться полного "тихого" выполнения команды Robocopy, избегая вывода информации, которая может быть ненужной. Это делает утилиту Robocopy подходящей для автоматизации задач копирования в фоновом режиме, особенно в тех случаях, когда вывод может отвлекать или мешать.