RoboCopy 日志文件缺少空格?

RoboCopy 日志文件缺少空格?

所以我正在编写一个脚本,使用 RoboCopy 复制一堆文件,并记录复制的内容。

除了日志文件之外,它运行得相当好。它们通常看起来像这样:

C:\Users\Tech\Documents\desktop.initechscan1.jpgtechscan2.jpgtechscan3.jpgtechscan4.jpgtechscan5.jpgwsus.jpgwsus2.jpgC:\Users\Tech\Documents\My Music\C:\Users\Tech\Documents\My Pictures\C:\Users\Tech\Documents\My Videos\C:\Users\Tech\Documents\My Digital Editions\

如您所见,日志似乎缺少条目之间的所有空格和分隔符。我能做些什么来解决这个问题?这有点令人沮丧。

我使用的命令行是这样的:

C:\Users\Tech\Desktop>Robocopy.exe C:\Users\Tech\Documents c:\Temp /e /l /b /xj /xf ntuser.* desktop.ini *.lnk /np /njh /log:migratedfiles.txt /v

由于我正在调试,所以我在那里使用了 /l,这是避免复制所有内容一百万次的最简单方法。

答案1

我遇到了同样的问题,Robocopy 的日志全部塞在一行中,几乎没有可读的信息。我修复这个问题的方法是在你的代码中也能看到一些东西;你正在从桌面运行 Robocopy 命令。尝试从文档中运行它(如果你正在使用 bat 文件,请移动它;或者如果你直接从 cmd 运行,请在命令提示符中更改目录)

我有不知道为什么,但对我来说,这立即解决了问题。当我按下 cd.. 并从 c:\users\ishan\desktop 移动到 cd:\users\ishan 时,robocopy 再次显示了正确的日志。我自己使用 .bat 文件来执行 robocopy 命令,因此我将该文件移动到我的文档中,从那里运行它,瞧,问题解决了。

希望这也能帮助您解决问题。

答案2

我也曾为同样的问题苦苦挣扎,相信我已经找到了答案。你需要做一点搜索,但之后应该会相当容易

在您的驱动器上搜索robo或 类似内容。您想要查找和C:的位置。在我使用的 32 位 Windows 7 测试系统上,我在以下目录中找到了上述文件:RoboCopy.EXERoboCopy.EXE.MUI

C:\Windows\System32\RoboCopy.EXE
C:\Windows\System32\en-US\RoboCopy.EXE.MUI

将这些文件复制到单独的目录中,但保留您在之后找到的相同目录结构System32。例如:

C:\Test_PGM\RoboCopy.EXE
C:\Test_PGM\en-US\RoboCopy.EXE.MUI

现在RoboCopy从备用目录运行。例如:

C:\>"C:\Test_PGM\RoboCopy.EXE" "C:\Test_SRC" "C:\Test_DST" /COPYALL

这将提供正确格式的输出。

答案3

我认为批处理文件运行时使用的 PATH 是关键。路径变量(对我来说)有 %SystemRoot%\system32;%SystemRoot%;等等。

但是,运行带有 ROBOCOPY.EXE /JOB:jobname.RCJ 的 bat 文件的作业与运行 C:\Windows\System32\ROBOCOPY.EXE /JOB:jobname.RCJ 的作业的运行方式不同

为了使作业正确运行,我在调用中指定了完整路径...我发现了两个版本的 Robocopy.exe(年龄、产品版本相同,并且能正确执行),所以我不知道没有指定全名的路径有不同版本的可执行文件 - 但这是错误的。

相关内容