web-dev-qa-db-ja.com

/ copyをファイルタイプのみのxcopyに含める

Visual StudioからWebフォルダーにファイルをコピーするバッチファイルがあります。 * .csファイルを除いて、Webプロジェクトのすべてのファイルをコピーしたい。私はこれを機能させることができないようです:

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

任意のヒント?これを実行しようとすると、終了コード4が表示されます。

61
Matt Dell

/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が除外されていることに注意してください。

111
Dean Taylor

私の場合、xcopyは最初の行を無視したため、2行目から除外拡張機能のリストを開始する必要がありました。

7
VLKxCOOL

Excludefileslist.txtで* .csを.csに変更します

5
Taiwo

複数のファイルタイプを除外するには、「+」を使用して他のリストを連結できます。例えば:

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/

1