/ исключить в xcopy только для типа файла
-
27-09-2019 - |
Вопрос
У меня есть пакетный файл для копирования файлов из Visual Studio в мою веб-папку. Я хочу скопировать все файлы в моем веб-проекте, кроме * .cs файлов. Я не могу получить это на работу:
xcopy /r /d /i /s /y /exclude:".cs" C:\dev\apan C:\web\apan
Какие-нибудь советы? Я просто получаю выходной код 4, когда я пытаюсь запустить это.
Решение
То /EXCLUDE:
Аргумент ожидает файла, содержащий список исключенных файлов.
Так что создайте файл под названием excludedfileslist.txt
содержащий:
.cs\
Тогда команда такая:
xcopy /r /d /i /s /y /exclude:excludedfileslist.txt C:\dev\apan C:\web\apan
В качестве альтернативы вы могли бы использовать Робокопия, но потребуется установка / копирование robocopy.exe
к машинам.
Обновлять
Анонимный комментарий Редактировать, который просто заявил «Это решение исключить также файл CSS!»
Это правда, создавая excludedfileslist.txt
Файл содержит только что:
.cs
(Обратите внимание на обратную косание на конце)
Также исключит все следующее:
file1.cs
file2.css
dir1.cs\file3.txt
dir2\anyfile.cs.something.txt
Иногда люди не читают или понимают помощь команды XCopy, вот предмет, который я хотел бы выделить:
Использование / исключение
- Перечислите каждую строку в отдельной строке в каждом файле. Если какой-либо из перечисленных Строки соответствуют любой части абсолютного пути файла, который будет скопирован, то этот файл затем исключен из процесса копирования. Например, если вы укажете строку « obj », вы исключите все файлы под каталог OBJ. Если вы укажете строку «.obj», вы исключите все файлы с расширением .obj.
Как указано в примере, он исключает «все файлы с расширением .obj», но не утверждает, что он также исключает файлы или каталоги имени file1.obj.tmp
или dir.obj.output\example2.txt
.
Вокруг .css
Исключенные файлы также, измените excludedfileslist.txt
Файл, чтобы содержать только:
.cs\
(Обратите внимание на обратную косание на конце).
Вот полная последовательность тестирования для вашей справки:
C:\test1>ver
Microsoft Windows [Version 6.1.7601]
C:\test1>md src
C:\test1>md dst
C:\test1>md src\dir1
C:\test1>md src\dir2.cs
C:\test1>echo "file contents" > src\file1.cs
C:\test1>echo "file contents" > src\file2.css
C:\test1>echo "file contents" > src\dir1\file3.txt
C:\test1>echo "file contents" > src\dir1\file4.cs.txt
C:\test1>echo "file contents" > src\dir2.cs\file5.txt
C:\test1>xcopy /r /i /s /y .\src .\dst
.\src\file1.cs
.\src\file2.css
.\src\dir1\file3.txt
.\src\dir1\file4.cs.txt
.\src\dir2.cs\file5.txt
5 File(s) copied
C:\test1>echo .cs > excludedfileslist.txt
C:\test1>xcopy /r /i /s /y /exclude:excludedfileslist.txt .\src .\dst
.\src\dir1\file3.txt
1 File(s) copied
C:\test1>echo .cs\ > excludedfileslist.txt
C:\test1>xcopy /r /i /s /y /exclude:excludedfileslist.txt .\src .\dst
.\src\file2.css
.\src\dir1\file3.txt
.\src\dir1\file4.cs.txt
3 File(s) copied
Этот тест был завершен на командной строке Windows 7 и повторной повторной обработке в Windows 10 «10.0.14393».
Обратите внимание, что последний пример исключает .\src\dir2.cs\file5.txt
который может или не может быть неожиданным для вас.
Другие советы
В моем случае мне пришлось начать список расширений исключения со второй строки, потому что XCopy проигнорировал первую строку.
Изменить * .cs к .cs в исключенияхListlist.txt
Для исключения нескольких типов файлов вы можете использовать «+» для объединения других списков. Например:
xcopy /r /d /i /s /y /exclude:excludedfileslist1.txt+excludedfileslist2.txt C:\dev\apan C:\web\apan
Источник: http://www.tech-recipes.com/rx/2682/xcopy_command_using_the_exclude_flag/