Подтвердить что ты не робот

/exclude в xcopy только для типа файла

У меня есть пакетный файл для копирования файлов из Visual Studio в мою веб-папку. Я хочу скопировать все файлы в свой веб-проект, EXCEPT для файлов *.cs. Кажется, я не могу заставить это работать:

xcopy /r /d /i /s /y /exclude:".cs" C:\dev\apan C:\web\apan

Какие-нибудь советы? Я просто получаю код выхода 4, когда я пытаюсь запустить это.

4b9b3361

Ответ 1

Аргумент /EXCLUDE: ожидает файл, содержащий список исключенных файлов.

Итак, создайте файл с именем excludedfileslist.txt содержащий:

.cs\

Тогда команда как это:

xcopy /r /d /i /s /y /exclude:excludedfileslist.txt C:\dev\apan C:\web\apan

В качестве альтернативы вы можете использовать Robocopy, но для этого потребуется установить/скопировать robocopy.exe на компьютеры.

Обновить

Редактирование анонимного комментария, в котором просто говорится: "Это решение исключает также файл CSS!"

Это правда, создавая файл "selectedfileslist.txt", содержащий только:

.cs

(обратите внимание, что на конце нет обратной косой черты)

Также будет исключено все следующее:

  • file1.cs
  • file2.css
  • dir1.cs\file3.txt
  • dir2\anyfile.cs.something.txt

Иногда люди не читают и не понимают справку по команде XCOPY, вот элемент, который я хотел бы выделить:

Использование/исключить

  • Перечислите каждую строку в отдельной строке в каждом файле. Если какая-либо из перечисленных строк соответствует какой-либо части абсолютного пути копируемого файла, этот файл затем исключается из процесса копирования. Например, если вы укажете строку "\ Obj \", вы исключите все файлы из каталога Obj. Если вы укажете строку ".obj", вы исключите все файлы с расширением .obj.

Как file1.obj.tmp пример, он исключает all files with the.obj extension но не утверждает, что он также исключает файлы или каталоги с именем file1.obj.tmp или dir.obj.output\example2.txt.

Также существует способ исключить файлы .css файл "excalfileslist.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 который может быть или не быть неожиданным для вас.

Ответ 2

В моем случае мне пришлось запустить список исключающих расширений из второй строки, потому что xcopy проигнорировал первую строку.

Ответ 3

Измените *.cs на .cs в файле excludefileslist.txt

Ответ 4

Для исключения нескольких типов файлов вы можете использовать '+' для объединения других списков. Например:

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/