Использование Robocopy для исключения расширения файла из корневого каталога. - PullRequest
5 голосов
/ 30 июня 2011

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

Мой план состоит в том, чтобы исключить несколько файлов из корня исходного каталога. На самом деле я хотел бы ТОЛЬКО исключить файлы .html из ROOT каталога.

Хитрость в том, что я сейчас использую / E, что в настоящее время также приводит к обработке всех подпапок.

Таким образом, текущий результат моей операции таков: если я использую:

/E /XF "*.html"

Я собираюсь исключить все HTML-файлы для всего сайта.

Можно ли продолжать копировать все подпапки, но также использовать XF для исключения файлов .html из корня?

Что-то вроде:

/E /XF "c:\releases\website_source\*.html"

Ответы [ 2 ]

4 голосов
/ 08 октября 2012

Мое решение было бы неприлично, но очень легко понять. Я бы просто выполнил задачу с помощью двухстрочного командного файла. Робокопировать корневую папку (но не подкаталоги) - включая файлы .html. Затем следующая строка Robocopy, включая все сабвуферы (кроме * .html)

3 голосов
/ 02 сентября 2012

Хорошо, так что без особой причины я должен был найти способ ответить на этот вопрос.

Я мог найти только «приличный» способ с помощью powershell, и он все еще грязный.

Итак, сначала отредактируйте следующий PowerShell в соответствии с вашими потребностями:

$files = Get-ChildItem c:\releases\website_source -Filter {*.html}
"/XF" > c:\temp\exclude.rcj
foreach ($f in $files) {$f.FullName >> c:\temp\exclude.rcj}

Создает список файлов после команды / XF в файле задания "robocopy". Затем вызовите вашу команду robocopy как обычно, но добавьте /job:c:\temp\exclude.rcj в конец. Это в основном сделает сложный / XF для каждого корневого HTML-файла более простым для записи в вашем скрипте.

Обратите внимание, что вы можете сделать выше с помощью пакетного файла, но я лучше с PowerShell, чем пакет для циклов и тому подобное.

Да, я понимаю, что этот вопрос несколько устарел, но мне нужно было кое-что сделать.

...