Robocopy - 仅通过成功的文件传输创建日志文件
问题描述:
我试图完成2件事情,但我不确定最佳方式。Robocopy - 仅通过成功的文件传输创建日志文件
-
从窗口源到另一个窗口服务器复制新的或修改的文件,并记录交易(已完成和使用的Robocopy记录),例如:
ROBOCOPY/XO/XX/Z/V /字节/ LOG:\ ServerB \ Log.txt \ ServerA \ source \ ServerB \ target * .txt/A-:A
为上面复制的文件名创建一个简单列表(另一个进程的控制文件)到一个没有任何其他细节的新文件,例如:
file1.txt
file2.txt
file3.txt
我认为与/ L运行的Robocopy发言两次,一次并将其写入日志,然后运行没有/ L相同的语句,并将其写入日志得到我需要但我一直没有找到一种方法来生成一个简单的日志文件,只有成功的文件名(如上面的例子)
答
我不是很清楚你是否只想在日志中复制文件甚至是非复制的相同文件。 你可以省略/ Verbose选项,那么你不需要隐藏很多状态。 您是否需要此日志来创建其他进程的列表,还是打算用于文档?
如果LOG是用于文档的,那么你可以在没有选项/ L的情况下敲打一切。
setlocal
for /f "delims= " %%t in ('robocopy . . /njh /njs')do set "tab=%%t"
3>controlfile (
for /f "tokens=3 delims=%tab%" %%i in ('robocopy /xx /xo /Z /bytes \\ServerA\source \\ServerB\target *.txt /tee /LOG:\\ServerB\Log.txt
') do >&3 echo %%i
)
我提供的详细日志记录的日志示例对于文档是必需的。复制的文件列表(新的和修改过的)对于另一个进程来说是必需的,这就是为什么我考虑了两次robocopy语句,第一次运行包括/ L。由于两次运行robocopy命令不会产生相同的结果,因此我想用/ L和/不使用/ V来尝试您的建议。谢谢你的建议!我会尽快在 – Jason
之后尝试一些小改动,我得到了这个我需要的东西。谢谢!这是我使用的代码的非特定版本: – Jason
'SETLOCAL FOR/F“DELIMS =”%% t IN('ROBOCOPY。/ NJH/NJS')DO SET“tab = %% t” 3 > controlFile.txt( \t FOR/F“TOKENS = 3 DELIMS =%tab%”%% i IN('ROBOCOPY/XX/XO/Z/BYTES/L \\ ServerA \ source \\ ServerB \ target * .txt ')DO>&3 ECHO %% i ) ROBOCOPY/XO/XX/Z/V/BYTES /LOG:\\ServerB\LOG.txt \\ ServerA \ source \\ ServerB \ target * .txt/A - :A' – Jason