19

Robocopy Log を使用しているときに、既存のファイル名と宛先フォルダーの詳細をすべて回避したいと考えています。

コピーされたファイルのリストとその詳細のみを表示したいだけです。

したがって、ログ上の既存のファイルの詳細を回避することで、robocopy ログ ファイルのサイズを節約できます。

それを回避するオプションはありますか、これについて助けてください

そのためのオプションが表示されませんでした

ロギング オプション : ::

             /L :: List only - don't copy, timestamp or delete any files.
             /X :: report all eXtra files, not just those selected.
             /V :: produce Verbose output, showing skipped files.
            /TS :: include source file Time Stamps in the output.
            /FP :: include Full Pathname of files in the output.
         /BYTES :: Print sizes as bytes.

            /NS :: No Size - don't log file sizes.
            /NC :: No Class - don't log file classes.
           /NFL :: No File List - don't log file names.
           /NDL :: No Directory List - don't log directory names.

            /NP :: No Progress - don't display percentage copied.
           /ETA :: show Estimated Time of Arrival of copied files.

      /LOG:file :: output status to LOG file (overwrite existing log).
     /LOG+:file :: output status to LOG file (append to existing log).

   /UNILOG:file :: output status to LOG file as UNICODE (overwrite existing log).
  /UNILOG+:file :: output status to LOG file as UNICODE (append to existing log).

           /TEE :: output to console window, as well as the log file.

           /NJH :: No Job Header.
           /NJS :: No Job Summary.

       /UNICODE :: output status as UNICODE.
4

7 に答える 7

25

デフォルトrobocopyでは、フォルダーと、存在しない/変更された (つまり、コピーされた) ファイルのみをログに記録します。

          New Dir          2    C:\Temp\a\
100%        New File                   0        bar.txt
100%        New File                   0        foo.txt

スイッチを使用してフォルダーのログを抑制することができます/ndl(この場合、コピーされたファイルは完全なパスと共に一覧表示されます)。

100%        New File                   0        C:\Temp\a\bar.txt
100%        New File                   0        C:\Temp\a\foo.txt

変更しfoo.txtて再実行するrobocopy a b /ndlと、

100%        Newer                      3        C:\Temp\a\foo.txt

/njhおよびを追加し/njsて、出力からヘッダーと要約を削除します。/np進行状況表示 (出力行の先頭のパーセント値) を削除するために追加します。/xx余分なファイル (宛先にのみ存在し、ソース フォルダーには存在しないファイル) の表示を削除するために追加します。

C:\Temp>robocopy a b /njh /njs /ndl /np

          *EXTRA File                  0        C:\Temp\b\baz.txt
            New File                   0        C:\Temp\a\bar.txt
            New File                   0        C:\Temp\a\foo.txt

C:\Temp>echo "foo" >a\bar.txt

C:\Temp>robocopy a b /njh /njs /ndl /np /l

          *EXTRA File                  0        C:\Temp\b\baz.txt
            Newer                      3        C:\Temp\a\bar.txt

C:\Temp>robocopy a b /njh /njs /ndl /np /xx /l

            Newer                      8        C:\Temp\a\bar.txt
于 2013-04-19T19:18:09.953 に答える
6

を使用する必要があります/NFL /NDL。これらは、robocopy アクションの一部ではないすべてのディレクトリとファイルの一覧を削除します。

公式リファレンス

読みやすいリファレンス

于 2014-04-21T10:56:08.927 に答える
3

出力でもスキップされたファイルが表示されるため、この TechNet の投稿に基づくことはできないようです。/v

私が把握できる唯一のオプションは、スキップされた行を削除するログでスクリプトを実行することです。

于 2013-04-19T19:05:56.450 に答える
2

最後に、スイッチが見つかりませんでした。既存のファイルの詳細行を削除し、各 robocopy が完了した後に同じファイル名でファイルを元に戻すような方法でスクリプトを作成することを選択しました

#To remove all Lines with string "Extra File"
 (Get-Content $LogPath)-replace '(.*Extra File).+' | Set-Content $LogPath 

#To remove all empty lines 
(Get-Content $LogPath) | Where-Object {$_ -match '\S'} | Set-Content $LogPath  

既存のファイルの詳細行のログ ファイルで行ったことは、「Extra File」文字列で始まるため、これらの行をすべて削除します。しかし、ラインスペースは残ります。そのため、別のコマンドを使用してすべての空行を削除しました。

貢献してください、誰でも簡単な方法を手に入れました

于 2013-04-24T16:37:30.007 に答える
1

これでうまくいくと思います: robocopy sourceDir targetDir /njh /njs /ndl /np | find /v "*追加ファイル"

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

于 2015-06-29T08:17:17.570 に答える