2017-02-27 5 views
-4

私はrobocopyで移動したファイルの数を取得する必要があります。私は多くの方法を試しましたが、robocopyが処理を終えて私に結果を示すと、コマンドラインに表示されている番号が正確に必要です。移動したファイルの数robocopy

コピーされたファイルは、 - X

どのように私はxの値を得ることができますか? ありがとうございます。

答えて

1
robocopy [Whatever Options] | findstr "Copied files" 

は最終報告書になります。

forループで実行できる実際の数値を解析するだけで済みます。

私はあなたにもっと役立つでしょうが、あなたはコードを表示していません。


私はrobocopyをを実行すると、私のようなルックスを得る出力:

   Total Copied Skipped Mismatch FAILED Extras 
    Dirs :   1   0   1   0   0   0 
    Files :  12  12   0   0   0   0 
    Bytes : 49.91 m 49.91 m   0   0   0   0 
    Times : 0:00:00 0:00:00      0:00:00 0:00:00 

は、これはあなたがCopied Files - Xを参照してくださいあなたのレポートからは非常に異なっています。


私は、これはあなたが望むものに近づいていると思う:

setlocal enabledelayedexpansion 

for /f "tokens=3 delims=: " %%a in ('robocopy [options] ^| findstr /C:Files ') do (
    set num=%%a) 

echo Files That Got Copied: %num% 

(軽くテストし、動作しているようです)

+0

reply.Ifのおかげで、私はそれだけでファイルを検索します。findstrを使用することが可能であるので、私は最初にrobocopyをの報告にログファイルを書き込み、そこに私の句を見つけるために試してみて、正しくました。そうですか?どのコードを見たいですか?私はrobocopyとだけ文字列を持っています。 –

+0

私は自分のマシンでRobocopyを実行しましたが、出力には 'コピーされたファイル-X'は含まれていません**。あなたはrobocopyにどのようなオプションを渡していますか?正確な出力は何ですか? – abelenky

+0

私は同じですが、ロシア語です。そのために残念。だから私はあなたの場合、コピーされたファイルの番号12を取得する必要があります。 Setlocal enabledelayedextantion robocopy [オプション] |/f "tokens = 4 delims = ......." %% a in( 'findstr/I "Files")は、num = %% a echo!num!を設定します。私はcmdで設定num = 12を参照してくださいしかし、実際にそれは私がそれを使用するときに変更されません。ありがとう。 –

0

ログを作成したい場合は、あなたがしています/logオプションを使用します。そうでない場合は、/njsオプションを使用しない限り、コピーしたファイルの数を確認できます。

for /f "tokens=3 skip=1" %%a in (
'robocopy /L . " nothing ..//" ^|findstr /rc:": *[0-9][0-9]* "' 
)do echo %%a 
+0

申し訳ありませんが、私はまだアイデアを得ることができません。あなたのコードは私にecho ':'を返します。さらに、私はrobocopyがどのように周期的に働くかを知りませんでした。私はrobocopy(非常に簡単)でファイルを移動し、コピーしたファイルの数を変数に書きたいと思います。この番号は、私がrobocopyの報告書から得なければならないものです。コードなしでうそをつく。私はスマートフォンの使用を余儀なくされています –

関連する問題