Visual StudioからWebフォルダーにファイルをコピーするバッチファイルがあります。 * .csファイルを除いて、Webプロジェクトのすべてのファイルをコピーしたい。私はこれを機能させることができないようです:
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 を使用できますが、robocopy.exe
をマシンにインストール/コピーする必要があります。
「このソリューションはcssファイルも除外します!」と単に述べた匿名のコメント編集
これは、以下を含むexcludedfileslist.txt
ファイルを作成するのに当てはまります。
.cs
(最後にバックスラッシュがないことに注意してください)
また、次のすべてを除外します。
file1.cs
file2.css
dir1.cs\file3.txt
dir2\anyfile.cs.something.txt
時々人々はXCOPYコマンドのヘルプを読んだり理解したりしません。ここで強調したい項目があります:
/ excludeの使用
- 各ファイルの個別の行に各文字列をリストします。リストされた文字列のいずれかが、コピーされるファイルの絶対パスの一部に一致する場合、そのファイルはコピープロセスから除外されます。たとえば、文字列「\ 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は最初の行を無視したため、2行目から除外拡張機能のリストを開始する必要がありました。
Excludefileslist.txtで* .csを.csに変更します
複数のファイルタイプを除外するには、「+」を使用して他のリストを連結できます。例えば:
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/