batch file闪烁后,执行完后无限循环的命令提示符

背景

我想用ROBOCOPY来备份文件夹。 为了学习这一点,我创build了一个testing源文件夹,其中包含其他子文件夹和虚拟文件。

F:\RoboCopy\RoboCopy_Files 

我能够从命令行和PowerShell ROBOCOPY源文件夹(使用Windows 10)。

 ROBOCOPY "RoboCopy_Files" "RoboCopy_Files_Testing" /MIR 

它正是我想要的。
现在我把这个命令放到batch fileRobocopy.cmd

问题症状

然而,当我把相同的命令放入Robocopy.cmd文件的根目录F:\ RoboCopy文件夹中并运行它时,我只得到闪烁的cmd窗口,并且我的命令在不断增加的行数上重复。

如何将命令放入CMD文件(例如Robocopy.cmd)以供以后使用/ share / schedule? 如何防止命令提示符在无限循环中闪烁而不运行命令?

注意:我觉得这更多的是学习如何将cmd脚本放入文件,而不是如何使用ROBOCOPY。

原因:文件和命令具有相同的名称

我想在ROBOCOPY文件中使用ROBOCOPY命令。 这是个错误。
该文件最终调用自己。

解决方案1:重命名批处理文件

一种解决方法是将批处理文件重命名为与文件中的命令不同。

解决方案2:使用更明确的命令调用

另一个解决方案可能是使用ROBOCOPY.exe或显式指定exe的完整路径,如C:… \ robocopy.exe 。 这将防止调用命令vs调用批处理文件本身的“混乱”。

解决方案1 ​​x 2

最好的解决方案(再次是Mofi)是将1×2结合在一起。 使用唯一的批处理文件名称并在批处理文件中指定命令(exe)的完整路径。

有用的相关命令:要确定命令(exe)的完整路径,请参阅WHERE命令(例如,Robocopy.exe的位置),系统变量(如SS64 )或SET命令。

在我的情况下完整版本将运行例如BackupRobocopyFiles.cmd与行:

 %SystemRoot%\System32\robocopy.exe "RoboCopy_Files" "RoboCopy_Files_Testing" /MIR /R:2 

注意:只有当cmd文件位于根文件夹F:\ RoboCopy中时,这才有效。 如果我想从不同的文件夹(或任务sheduler)运行cmd,我将指定ROBOCOPY命令的SOURCE_FOLDER和DESTINATION_FOLDER参数的完整路径。

捐款

答案是根据“MC ND”,“eryksun”的评论找到的。 “莫菲”指出,原来的Q没有帮助。 谢谢大家。