所以我正在编写一个脚本,使用 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.EXE
RoboCopy.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(年龄、产品版本相同,并且能正确执行),所以我不知道没有指定全名的路径有不同版本的可执行文件 - 但这是错误的。