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


8

%進行状況でコンソールを更新するが、%進行状況でログファイルを乱雑にしない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を数回読みましたが、必要なスイッチが見つかりません。何かが足りないのですか、それとも達成したいことは不可能ですか?


組み込みのツールのみを使用する必要がありますか?
Hello71、

回答:


2

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

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

単一の.exeファイルのバージョンがありますsedUnxUtils(やや最新バージョンへのアップデートのzip内で)。

別のオプションは、の代わりにXXCOPYを使用することですRobocopy。それは持っているスイッチの本当にとんでもない数のあなたがやりたいことができます(以上230)を、。あなたはあなたが使用したいものを選択して一晩中過ごさなければなりません。それを使用したい場合は、GUIの進行状況ダイアログボックスも表示されます。

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

XXCOPY

別の代替方法は、オプションを選択するために使用できるGUIを備えたRichCopyです。次に、バッチスクリプトで使用するための操作のコマンドラインを提供します。

リッチコピー


1

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

解決策:/ 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がパイプへの方法ではありませんstdoutを通じてsed直接?
パラドロイド、2011

1
もちろん、sedを介してパイプすることもできますが、コンソールの表示から進捗情報とログファイルが削除される可能性があります...
Mac

もちろん、teeRobocopyの/TEEスイッチの代わりにコマンドを使用できると思いましたが、それがTCC/LE標準CMDコマンドではなく、その一部であることに気づきました。それでも利用可能PowerShellです。
パラドロイド、2011

実際..それでも、進行状況はログファイルに書き込まれます!したがって、求められているものとは正反対です。私はちょうどrobocopyでテストしました。tst /log:n:\tst.log / tee | sed "s / \ x0d。* \ x0d。* $ //"
Mac

teeはgnuwin32 ..からも入手できますが、同じ問題が発生します;)gnuwin32.sourceforge.net/packages/coreutils.htm
Mac
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.