/在xcopy中排除仅用于文件类型
我有一个批处理文件将文件从Visual Studio复制到我的Web文件夹。我想复制我的web项目中的所有文件,除* .cs文件外。我似乎无法得到这个工作:/在xcopy中排除仅用于文件类型
xcopy /r /d /i /s /y /exclude:".cs" C:\dev\apan C:\web\apan
任何提示?当我尝试运行这个时,我只是得到退出代码4。
/EXCLUDE:
参数期望包含排除文件列表的文件。
所以创建一个名为 “excludedfileslist.txt” 含AA文件:
.cs\
那么这样的命令:
xcopy /r /d /i /s /y /exclude:excludedfileslist.txt C:\dev\apan C:\web\apan
另外,您可以使用Robocopy,但需要安装/复制robocopy.exe
到机器。
更新
匿名评论编辑,只是说明“该解决方案还排除CSS文件!”
这是真正的创造了“excludedfileslist.txt文件仅包含:
.cs
(注意最后没有反斜线)
也将排除以下所有条件:
file1.cs
file2.css
dir1.cs\file3.txt
dir2\anyfile.cs.something.txt
有时候人不阅读或理解XCOPY命令的帮助下,这是一个项目,我想强调:
使用/排除
- 在每个文件的单独行中列出每个字符串。如果列出的任何字符串与要复制文件的绝对路径的任何部分相匹配,则该文件将从复制过程中排除。例如,如果您指定字符串“\ Obj \”,则会排除Obj目录下的所有文件。如果指定字符串“.obj”,则排除扩展名为.obj的所有文件。
作为例子指出它排除all files with the .obj extension
但并不说明它也排除文件或命名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
,它可能会或可能不会让您感到意外
更改*的.cs到的.cs在excludefileslist.txt
在我而言,我不得不从第二行开始排除扩展名列表,因为XCOPY忽略了第一道防线。
若要排除多个文件类型,可以使用'+'连接其他列表。例如:
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/
哦,这是一个有点不方便,因为我想这个分配给我的整个开发团队。有没有解决这个问题的方法? – 2010-11-23 02:33:10
更新了包含robocopy备选方案的答案。 – 2010-11-23 02:40:14
好吧,我明白了!我可以在批处理文件的开头创建文件:echo .cs> C:\ nocs.txt – 2010-11-23 02:40:30