kol*_*inx 5 windows cmd batch-file robocopy
我想使用ROBOCOPY来备份文件夹.为了解这一点,我创建了一个测试源文件夹,其中包含其他子文件夹和虚拟文件.
F:\RoboCopy\RoboCopy_Files
Run Code Online (Sandbox Code Playgroud)
我能够从命令行和PowerShell(使用Windows 10)ROBOCOPY源文件夹.
ROBOCOPY "RoboCopy_Files" "RoboCopy_Files_Testing" /MIR
Run Code Online (Sandbox Code Playgroud)
它完全符合我的要求.
现在我将命令放入批处理文件中Robocopy.cmd.
但是,当我将相同的命令放入Robocopy.cmd文件时,在根F:\ RoboCopy文件夹中运行它,我只得到闪烁的cmd窗口,我的命令在越来越多的行上重复.
如何将命令放入CMD文件(例如Robocopy.cmd)以供以后使用/共享/计划?如何在不运行命令的情况下防止命令提示符在无限循环中闪烁?
注意:我觉得这更像是学习如何将cmd脚本放入文件,而不是如何使用ROBOCOPY.
我想在ROBOCOPY文件中使用ROBOCOPY命令。这是个错误。
文件最终调用自身。
一种解决方案是将批处理文件重命名为与文件中的命令不同的名称。
另一种解决方案可能是使用 ROBOCOPY.exe 或显式指定 exe 的完整路径,例如C:...\robocopy.exe。这将防止调用命令与调用批处理文件本身的“混淆”。
最好的解决方案(再次感谢 Mofi)是将 1 x 2 组合在一起。使用唯一的批处理文件名并指定批处理文件内命令 (exe) 的完整路径。
有用的相关命令:要确定命令 (exe) 的完整路径,请参阅WHERE命令(例如,Where Robocopy.exe - 这应该位于 windows 文件夹中的某个位置。)、系统变量(例如SS64)或命令SET。
在我的例子中,完整版本是使用以下行运行例如 BackupRobocopyFiles.cmd:
%SystemRoot%\System32\robocopy.exe "RoboCopy_Files" "RoboCopy_Files_Testing" /MIR /R:2
Run Code Online (Sandbox Code Playgroud)
注意:仅当 cmd 文件位于根文件夹 F:\RoboCopy 中时,此操作才有效。如果我想从不同的文件夹(或任务调度程序)运行 cmd,我将指定 ROBOCOPY 命令的 SOURCE_FOLDER 和 DESTINATION_FOLDER 参数的完整路径。
答案是根据以下评论找到的:“MC ND”、“eryksun”。“Mofi”确实指出,最初的 Q 没有帮助。谢谢大家。