我有一個批處理文件將文件從Visual Studio複製到我的Web文件夾。我想複製我的web項目中的所有文件,除* .cs文件外。我似乎無法得到這個工作:/在xcopy中排除僅用於文件類型
xcopy /r /d /i /s /y /exclude:".cs" C:\dev\apan C:\web\apan
任何提示?當我嘗試運行這個時,我只是得到退出代碼4。
我有一個批處理文件將文件從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