Robocopyログの使用中は、既存のすべてのファイル名と宛先フォルダーの詳細を回避したいと思います。
コピーしたファイルのリストとその詳細のみを表示したいだけです。
したがって、ログ上の既存のファイルの詳細を回避することで、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.
デフォルトでは、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
/NFL /NDL
を使用してください。彼らは、robocopyアクションの一部ではないすべてのディレクトリとファイルのリストを削除します。
最後に、スイッチを見つけることができませんでした。既存のファイルの詳細行を削除し、各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」という文字列で始まっているので、これらの行をすべて削除します。ただし、行間は残ります。別のコマンドを使用して、すべての空の行を削除しました。
貢献してください、誰でもこれのための簡単な方法を得ました
このTechNetの投稿 に基づくことはできないようです。/v
出力には、スキップされたファイルが表示されます。
私が理解できる唯一のオプションは、スキップされた行を削除するログでスクリプトを実行することです。
/XX
は、宛先フォルダー内のEXTRAファイルの削除も回避することを確認しました。そのため、追加のファイル情報は記録されませんです。上記の誰かが/XX
は/MIR
オプションを無効にすることをすでに述べました。
これはうまくいくと思います:robocopy sourceDir targetDir 。/njh/njs/ndl/np |/v "* Extra File"を検索します
したがって、指定したテキスト「* Extra File」を含む行を除外するために、/ Vで出力を「find」にパイプするだけです。
ノイズをカットしようとすること。使用する robocopy /xx
で、宛先フォルダにすでにあるファイルは表示されません。