【发布时间】:2017-02-02 10:22:09
【问题描述】:
我正在尝试在 Windows 中一次批量执行三个命令:robocopy、cd 和 ren。一个例子是我想将文件复制到另一个目录,然后在它们的名字后面添加.bak。我使用&& 来堆叠命令:
robocopy C:\original D:\backup && cd D:\backup && ren * *.bkp
但是,如果我只是在命令提示符中输入第一个位:
robocopy C:\original D:\backup && cd D:\backup
目录实际上并没有改变。我需要手动插入第二个命令。
我也试过了
robocopy C:\original D:\backup && ren D:\backup\* *.bkp
同样,它仅在我手动单独执行命令时才有效。如果我执行整个命令,则只执行第一位(robocopy)。
【问题讨论】:
-
您不能使用
ren将文件移动到其他驱动器。请改用move。 -
cmd1 && cmd2表示“只有在 cmd1 成功时才运行 cmd2”,而cmd1 & cmd2表示“运行 cmd1 然后运行 cmd2”。 -
嗯? Batch 总是一次运行一个命令。你不需要做任何特别的事情来实现它。
-
当涉及到
ErrorLevel时,请注意robocopy,因为该命令在成功的情况下也会返回non-zero values,例如指示文件是否已被复制;所以&&之后的命令可能不会被意外执行... -
@SkeletonBow:如果您愿意,可以使用
&,但您也可以将每个命令放在单独的行上。它会做完全相同的事情,并且更容易阅读。
标签: windows batch-file cmd