除外されたファイルが大量にある場合、robocopy をどのように使用すればよいですか?

除外されたファイルが大量にある場合、robocopy をどのように使用すればよいですか?

ホワイトリストにあるファイルを除く多数のファイルを robocopy を使用して移動したいと考えています。ホワイトリストには、異なる名前の約 150 個のファイルが含まれています。ホワイトリストのファイル名をコマンド ラインにコピーして貼り付けると (パラメータを使用/xf)、robocopy によってリストが切り捨てられます。

c:\test> robocopy src dest *.ext /xf exclude1.ext exclude2.ext exclude3.ext ... exclude 299.ext exclude300.ext

結果:

-------------------------------------------------------------------------------
   ROBOCOPY     ::     Robust File Copy for Windows

-------------------------------------------------------------------------------

  Started : Fri May 24 14:09:31 2013

   Source : C:\test\src\
     Dest : C:\test\dest\

    Files : *.ext

Exc Files : exclude1.ext
            exclude2.ext
            exclude3.ext
            ....
            ....
            exclude200.ext
            exclude201.ext
            exclu

その後:

'exclude250.ext' is not recognized as an internal or external command,
operable program or batch file.
'exclude251.ext' is not recognized as an internal or external command,
operable program or batch file.
'exclude252.ext' is not recognized as an internal or external command,
operable program or batch file.
'exclude253.ext' is not recognized as an internal or external command,
operable program or batch file.

残念ながら、ホワイトリスト内のファイルは手動で選択されるため、ワイルドカードでフィルタリングすることはできません。

これを回避する方法はありますか?

答え1

Windows ではコマンド ラインの長さに制限があります (2048 文字程度だと思います)。

構文を取得するには、引数を使用して除外リストの小さなサブセットを指定してジョブ ファイルを生成し/save:filename、完全なリストが含まれるようにファイルを編集してから、/job:filename引数を使用して実行する必要があります。

参考までに、このツールのドキュメントはここにあります。

答え2

robocopy ジョブ ファイルの構文はそれほど複雑ではないことがわかりました。

特定の状況では、次の内容の robocopy ジョブ ファイルを作成することで、目的を達成できます。

/XD
exclude1.ext
exclude2.ext
exclude3.ext
....

ファイルに対しても同じことを行う場合、robocopy ジョブ ファイルは次のようになります。

/XD
exclude1.ext
exclude2.ext
exclude3.ext
....

/XF
file1.ext
file2.ext
file3.ext
....

同じロジックを使用して、他のオプションをコマンド ラインからジョブ ファイルに移動することもできます。

答え3

/XF filename1*.ext filename2*.ext filename3*.ext の後にワイルドカードを使用してみてください。これは、ファイル名が構造全体で一意であることがわかっている場合にのみ機能します。この制限を回避するには、除外するファイルの命名規則を変更できます。

関連情報