2010-11-23 5 views
52

Visual StudioからWebフォルダにファイルをコピーするバッチファイルがあります。 * .csファイルを除いて、私のWebプロジェクト内のすべてのファイルをコピーしたいと思います。私はこれを働かせるように見えない:/xcopyでファイルタイプのみの除外

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

何かヒント?私はこれを実行しようとすると終了コード4を取得します。

答えて

95

引数は、除外されたファイルのリストを含むファイルを必要とします。

だから、 "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.tmpdir.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が除外されていますが、予期しないことがあります。

+0

ああ、それは私が私の全体の開発チームにこれを配布しようとしていますので、不便のビットです。これに対処する方法はありますか? –

+1

robocopyの代替候補を含めるように更新されました。 –

+8

さて、私はそれを得た!バッチファイルの先頭にファイルを作成するだけです:echo .cs> C:\ nocs.txt –

5

XCOPYは、最初の行を無視するので、私は二行目から除外する拡張子のリストを開始しなければならなかった私の場合はexcludefileslist.txt

7

で.csファイルへの変更は、* .csファイル。

+1

私はこれを持っていて、除外テキストファイルの最初の行を空白にしておくことは答えでした - 誰もが最初の行を空白にしなければならない理由を知っていますか? –

0

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

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/

+0

または1つのエクスクルードファイル内の各行に別々の拡張子を追加するだけです。 – angularsen

関連する問題