robocopyの出力から「余分なファイル」と「100%」の行を非表示にするにはどうすればよいですか?


17

毎晩実行されるKilnリポジトリをバックアップするためのロボコピースクリプトがあります。これは次のようなものです。

robocopy "$liveRepoLocation" "$cloneRepoLocation" /MIR /MT /W:3 /R:100 /LOG:"$backupLogLocation\BackupKiln.txt" /NFL /NDL /NP

出力には、次のように「余分なファイル」を含む大量の行があります。

*EXTRA File              153    E:\Kiln Backup\elasticsearch\data\elasticsearch-kiln\nodes\0\indices\kiln-2\0\index\_yxe.fdt
*EXTRA File               12    E:\Kiln Backup\elasticsearch\data\elasticsearch-kiln\nodes\0\indices\kiln-2\0\index\_yxe.fdx
*EXTRA File              128    E:\Kiln Backup\elasticsearch\data\elasticsearch-kiln\nodes\0\indices\kiln-2\0\index\_yxe.fnm
*EXTRA File              363    E:\Kiln Backup\elasticsearch\data\elasticsearch-kiln\nodes\0\indices\kiln-2\0\index\_yxe.frq
*EXTRA File               13    E:\Kiln Backup\elasticsearch\data\elasticsearch-kiln\nodes\0\indices\kiln-2\0\index\_yxe.nrm

さらに、下部には次のように「100%」以外の何百もの行があります。

100%  
100%  
100%  
100%  
100%  
100%  
100%  

ログファイルを膨大にする(Kilnリポジトリに多数のフォルダー/ファイルが存在する)ことに加えて、今すぐログをスキャンして、すべてが正常に機能しているかどうかを確認するのが面倒です。

  1. ログに表示される「追加ファイル」を停止するにはどうすればよいですか?(編集:/ NCが停止するテキストだけでなく、行全体)
  2. ログに表示されるこれらの愚かな「100%」行を停止するにはどうすればよいですか?

考えられるすべてのスイッチの組み合わせを試しました(現在のスイッチはコマンドの上記にリストされています)が、どちらもこれらを隠していないようです!


ss64.com/nt/robocopy.htmlによると、動作するはずです。paramsの順序を変更してドキュメントをミラーリングしようとしましたか?/ L / NP / LOG:file / UNILOG:file / LOG +:file / UNILOG +:file / TS / FP / NS / NC / NFL / NDL / TEE / NJH / NJS
ルイスアンジェロ

回答:


8

そこに/ NCが欠けていることに気づきました。

/ NC:クラスなし-ファイルクラスをログに記録しません。

クラスファイルとは... robocopyとは、微調整され、孤独で余分なものとはどういう意味ですか?

だから私は試してみます:robocopy "$ liveRepoLocation" "$ cloneRepoLocation" / MIR / MT / W:3 / R:100 / NP /LOG:"$backupLogLocation\BackupKiln.txt "/ NC

編集1

私の悪い。/ NCを試すことについて既に言及しているのを見なかった

ここでテストしました。/ MIRオプションはログオプションを無視しているようです。また、/ MTはそれを台無しにし、100%を追加します。

私が働いた唯一の方法は

D:\ robocopy> robocopy source destination / MIR / W:3 / R:100 / NS / NC / NFL / NDL / NP /LOG:log.txt "。

* / MIRで実際に動作します。ただし、/ NFL / NDL を指定する必要があります。*それが受け入れられるかどうかはわかりません。

/ MTを試しても、愚かな100%が表示されます

編集2

質問はロボコピーに関するものであることは知っていますが、RichCopyを試してみてください http://technet.microsoft.com/en-us/magazine/2009.04.utilityspotlight.aspx

コマンドラインは次のとおりです。

richcopy "D:\ robocopy \ source" "D:\ robocopy \ destination" / P / QO / QP "D:\ robocopy \ report.log" / UE / US / UD / UPC / UFC / USC / UPR / UET

RichCopyのGUIを起動し、終了すると閉じます。

そして、ここにログがあります

28/11/2012 11:35:19,0、コピー開始、

28/11/2012 11:35:20,0、Source path:D:\ robocopy \ source、

28/11/2012 11:35:20,0、宛先パス:d:\ robocopy \ destination、

28/11/2012 11:35:20,0、ソースファイル数:12ファイル、

28/11/2012 11:35:20,0、コピーされたファイル数:13ファイル、

28/11/2012 11:35:20,0、パージされたファイル数:1,224ファイル、

28/11/2012 11:35:20,0、経過時間:00:00:01、

28/11/2012 11:35:20,0、平均パフォーマンス:1,641,528バイト/秒、

28/11/2012 11:35:20,0、平均パフォーマンス:13ファイル/秒、

28/11/2012 11:35:20,0、コピー完了、D:\ robocopy \ source


1
/ NCは「余分なファイル」列を削除するだけなので、テキストは表示されません。行の残りはまだ含まれています。私はその線がまったく欲しくありません。私はちょうど要約が欲しい:(
ダニータッペニー

私の悪い。あなたがすでに言及しているのを見なかった。ここでテストしました。/ MIRオプションはログオプションを無視しているようです。また、/ MTはそれを台無しにします。私が働いた唯一の方法は、「D:\ robocopy> robocopy source destination / MIR / W:3 / R:100 / NS / NC / NFL / NDL / NP /LOG:log.txt」でした。/ MTを試しても、愚かな100%が表示されます。
ルイスアンジェロ

1
100%は最悪の部分です(余分なファイルよりもはるかに多い)。MTがこれを実行していることに気づかなかったので、大きな利益をもたらさない場合は削除するかもしれません!
ダニータッペニー

それはs 'は100%の解決策だ、と私は:( / MIRと『エキストラファイル』ログへの解決策はないと思うように正しいとしてこれをマーキング
ダニーTuppeny

元の回答を編集しました。見逃さないように新しいコメントを投稿するだけです。
ルイスアンジェロ

5

この/XXオプションは、余分なファイルをリストから除外します。逆に、このオプションはにではFile Selectionなく、オプションにリストされていますLogging/Xロギングオプションの反対です。


1
/ XXは余分なファイルを選択できないようにし、/ Xは単なるログ記録用ですが、さらに多くの余分なファイルを表示できると信じています / XXは私のためにトリックをしました。
-sonjz

1
-1。/XXは、ミラーリングプロセスの期待どおりに、削除するのではなく、追加のファイルを宛先に残すため。
マーク

3

私はこれがうまくいくと思う:

robocopy sourceDir targetDir *.* /njh /njs /ndl /np | find /v "*EXTRA File"

したがって、指定されたテキスト「* Extra File」を含む行を除外するために、/ Vを使用して出力を「find」にパイプするだけです。


ログからのみ進行状況(0〜100%のカウンター)を除外する方法(ただし、コンソールに表示されたまま)
PeterCo

0

スイッチの使い方はどうですか

 /MIR /MT /W:3 /R:100 /NFL /NDL /NP 2>&1 | findstr /v /L /C:" * EXTRA " | findstr /v /L /C:"100%%" > "log file name with or without path"

あなたは持っています

robocopy "$liveRepoLocation" "$cloneRepoLocation" /MIR /MT /W:3 /R:100 /NFL /NDL /NP 2>&1 | findstr /v /L /C:" * EXTRA " | findstr /v /L /C:"100%%" > "$backupLogLocation\BackupKiln.txt"
  • 検索文字列に%を含めるには、二重%%が必要です
  • 2>&1リダイレクトstdoutに標準エラー出力ストリームいくつかのメッセージが標準エラー出力に書き込まれ、我々は、/ LOGスイッチがないように、これらのラインをキャプチャしたいので。
  • / vスイッチを指定した2つのfindstrコマンドは、検索文字列を含まないすべての行を検索します
  • >「ログファイル名は、」ログファイルへの最終的な出力をリダイレクトします。通常/ LOG:+を使用する場合は、代わりに>> "log filename"使用します

注:これをpowershellスクリプトで使用している場合、あなたがそうであるように、.batまたは.cmdファイルでできるようにfindの代わりにfindstrを使用する必要があります。/ Lと/ C:はfindではサポートされていませんが、findコマンドでは必要ありません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.