web-dev-qa-db-ja.com

進行状況をコンソールのみに記録してロボコピーする方法は?

%進行状況でコンソールを更新するが、%進行状況でログファイルを乱雑にしないRoboCopyを実行したい。

次のRoboCopyコマンドは、目的のコピーを実行し、ログ情報をログファイルに追加します。

RoboCopy <source> <dest> /log+:<log file> /tee

問題は、ログファイルが%の進行状況の更新で雑然としていることです。したがって、コマンドを次のように変更する必要があります。

RoboCopy <source> <dest> /log+:<log file> /tee /np

今問題は、画面に進行状況の更新が何も表示されないことです。

私は http://technet.Microsoft.com/en-us/library/cc733145%28WS.10%29.aspx を数回読みましたが、スイッチを見つけることができません私は欲しい。何かが足りないのですか、それとも達成したいことは不可能ですか?

8
Tim Murphy

長い間誰もこれに答えていないので、私はいくつかのことを提案したいと思いました。

バッチスクリプトを使用している場合、ログファイルから不要な進行状況情報を取り除くために sed を使用することはそれほど難しくないはずです。私はそれに少し時間を費やすことなくそれを使用するソリューションをあなたに与えるほど十分に経験していません。

UnxUtils にはsedの単一の.exeファイルバージョンがあります(更新Zipのバージョンは少し最新です) 。

別のオプションは、Robocopyの代わりに [〜#〜] xxcopy [〜#〜] を使用することです。 本当にばかげた数のスイッチ (230以上)があり、好きなように操作できます。あなたはあなたが使用したいものを選択する一晩中過ごさなければなりません。使用したい場合は、GUIの進捗ダイアログボックスも表示されます。

有料のバージョンとは異なり、プロンプトをインタラクティブにたどる必要があるため、自動スクリプトには使用できない個人用の無料バージョンがあります。

XXCOPY

別の選択肢は RichCopy です。これには、オプションを選択するために使用できるGUIがあります。次に、バッチスクリプトで使用するための操作のコマンドラインを提供します。

RichCopy

2
paradroid

再:ロボコピーとログされた進行状況 'ノイズ'

解決策:/ TEEだけを使用して「ノイズ」をログに記録させます。そうしないと、進行状況が表示されません。次に、sedを使用して、最初に次のようにログファイルをクリーンアップすることをお勧めします。

sed -i.bak "s/\ x0d。*\x0d。* $ //" logfile.txt

未修正のバックアップが必要ない場合は、.bakを削除してください。 sedはここのウィンドウで利用可能で、少なくとも1行で使用すると問題なく動作します。

http://gnuwin32.sourceforge.net/packages/sed.htm

*(UNIX bash/cshellスクリプトのsedコマンドは、多くの場合、複数行にまたがっており、柔軟性と複雑さが増しています。これらのタイプのsedコマンドがWindowsのcmdスクリプトで機能することは期待していませんが、sedは引き続きWindowsで役立ちます)。

1
Mac