【发布时间】:2017-08-10 19:53:43
【问题描述】:
背景
我想使用ROBOCOPY 来备份文件夹。为了了解这一点,我创建了一个测试源文件夹,其中包含其他子文件夹和虚拟文件。
F:\RoboCopy\RoboCopy_Files
我能够从命令行和 PowerShell(使用 Windows 10)ROBOCOPY 源文件夹。
ROBOCOPY "RoboCopy_Files" "RoboCopy_Files_Testing" /MIR
它完全符合我的要求。
现在我将命令放入批处理文件Robocopy.cmd。
问题症状
但是,当我将 相同的命令放入 Robocopy.cmd 文件,在根 F:\RoboCopy 文件夹中并运行它时,我只得到 闪烁cmd 窗口,我的命令在越来越多的行上重复。
如何将命令放入 CMD 文件(例如 Robocopy.cmd)以供以后使用/共享/调度?如何防止命令提示符在不运行命令的情况下无限循环闪烁?
注意:我觉得这更多的是学习如何将 cmd 脚本放入文件,而不是如何使用 ROBOCOPY。
【问题讨论】:
-
如果您的批处理文件名为
robocopy.cmd,那么您在批处理文件中的robocopy命令将调用批处理文件本身。更改批处理文件的名称或在批处理文件中使用robocopy.exe以避免它调用自己 -
脚本应该有一个唯一的名字。但是,这不一定是问题。如果它从工作目录中获取 robocopy.cmd,您可以从隐式搜索路径中删除该目录。定义环境变量
NoDefaultCurrentDirectoryInExePath。您仍然可以通过添加“。”来搜索工作目录。到PATH,但在系统目录之后。 -
@MCND 您的评论是正确的。更改批处理文件名后,脚本按预期工作。谢谢你。会接受你的答案,如果你做出一个。
-
@Mofi 您对当前问题的帮助是正确的。但是,我可以重写 Q 以更好地描述正在发生的事情(只是症状)。关键是 cmd 正在调用自己,因为我为文件和命令使用了相同的名称。不管多么不可能,这可能会再次发生在 cmd 新手(比如我自己)身上。 Q的新标题可以是:命令提示符在无限循环中闪烁-> A:尝试使用不同的文件名或更改命令的调用方式,因为它正在调用自己。
标签: windows batch-file cmd robocopy