5

I have a directory that I want to copy to another directory using Robocopy.exe.

My plan is to exclude a few files from the root of the source directory. In fact, I'd like to ONLY exclude .html files from the ROOT of the directory.

The trick is that I'm currently using /E which is currently causing all subfolders to be processed too.

Therefore, the current outcome of my operation is that if I use:

/E /XF "*.html"

I'm going to exclude all HTML files site-wide.

Is there a way that I can keep copying all sub-folders, but also use XF to exclude .html files from the root?

Something like:

/E /XF "c:\releases\website_source\*.html"
4

2 に答える 2

4

私の解決策は下品ですが、非常に理解しやすいでしょう。2行のバッチファイルを使用してタスクを実行します。ルートフォルダ(サブディレクトリは除く)をRobocopyします-.htmlファイルを含みます。次に、すべてのサブ(* .htmlを除く)を含む次の行のRobocopy

于 2012-10-08T12:24:51.687 に答える
4

わかりましたので、本当の理由はありませんが、これに答える方法を見つけなければなりませんでした。

私はpowershellを使用して「まともな」方法しか見つけることができませんでしたが、それでも面倒です。

まず、ニーズに合わせて次の PowerShell を編集します。

$files = Get-ChildItem c:\releases\website_source -Filter {*.html}
"/XF" > c:\temp\exclude.rcj
foreach ($f in $files) {$f.FullName >> c:\temp\exclude.rcj}

これにより、robocopy「ジョブ」ファイルの /XF コマンドの後にファイルのリストが作成されます。次に、通常どおり robocopy コマンドを呼び出しますが/job:c:\temp\exclude.rcj、最後に追加します。これにより、基本的に、各ルート HTML ファイルの複雑な /XF をスクリプトに簡単に記述できるようになります。

上記はバッチファイルで実行できることに注意してください。ただし、ループなどにはバッチよりもpowershellの方が適しています。

はい、現時点ではこれはやや古い質問だと思いますが、何かする必要がありました。

于 2012-09-02T03:54:30.847 に答える