2011-06-30 14 views
5

Robocopy.exeを使用して別のディレクトリにコピーするディレクトリがあります。Robocopyを使用してルートディレクトリからファイル拡張子を除外する

私の計画は、いくつかのファイルをソースディレクトリのルートから除外することです。実際には、ディレクトリのルートから.htmlファイルのみを除外したいと思います。

私は現在/ Eを使用していますが、現在はすべてのサブフォルダも処理されています。

私が使用している場合ので、私の操作の現在の結果は、ということです。

/E /XF "*.html" 

私は、サイト全体のすべてのHTMLファイルを除外するつもりです。

すべてのサブフォルダをコピーしておくことができますが、XFを使用してルートから.htmlファイルを除外する方法はありますか?以下のような

何か:

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

ファイルを転送するのはどうでしょうか?後で宛先から.htmlファイルを削除するのはどうですか? –

答えて

3

は[OK]を、ない本当の理由はので、私はこれに答えるための方法を見つけなければなりませんでした。

私は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を使用した方が効率的です。

はいこれは幾分古い質問ですが、私は何かする必要がありました。

4

私の解決策は気を失うが、非常に分かりやすい。 2行バッチファイルでタスクを実行するだけです。 Robocopyは、ルートフォルダ(ただし、サブディレクトリではありません).htmlファイルを含みます。 次の行Robocopy(* .htmlを除く)