Batch file Robocopy脚本移动7z文件,但如果有.log文件,则复制这些文件

Batch file Robocopy脚本移动7z文件,但如果有.log文件,则复制这些文件,batch-file,if-statement,copy,move,robocopy,Batch File,If Statement,Copy,Move,Robocopy,我有一个脚本(作业a),它运行一个Robocopy脚本,每晚从多台机器复制所有未压缩的.log文件。我已经完成了一个过程(作业B),其中.log文件在作业a之前压缩为.7z文件。由于许多源计算机将有.log和.7z文件的组合,我希望将Robocopy作业设置为将所有.7z文件移动到目标,但如果没有.7z文件,我希望作业改为复制.log文件 我简要介绍了IF命令的使用,但看不到如何将其完全结合起来。我甚至不确定这是否可能 当前作业脚本如下所示: Robocopy "\\SOURCE\Logs" "

我有一个脚本(作业a),它运行一个Robocopy脚本,每晚从多台机器复制所有未压缩的.log文件。我已经完成了一个过程(作业B),其中.log文件在作业a之前压缩为.7z文件。由于许多源计算机将有.log和.7z文件的组合,我希望将Robocopy作业设置为将所有.7z文件移动到目标,但如果没有.7z文件,我希望作业改为复制.log文件

我简要介绍了IF命令的使用,但看不到如何将其完全结合起来。我甚至不确定这是否可能

当前作业脚本如下所示:

Robocopy "\\SOURCE\Logs" "\\DEST\Logs" /s /zb /r:2 /w:2 /eta /LOG+:\\DEST\\move.log /NP
rem Robocopy "\\SOURCE\Logs" "\\DEST\Logs" *.7z /mov /s /zb /r:2 /w:2 /eta /LOG+:\\DESTmove.log /NP

cls
复制过程已完成


有人能帮忙吗?

编辑:这是一个使用您在评论中提供的robocopy行的修订代码,我在复制版本中添加了
*.log
文件规范

它还没有经过测试

@echo off
pushd "\\SOURCE\Logs"
if exist *.7z (
    Robocopy "\\SOURCE\Logs" "\\DEST\Logs" *.7z /mov /s /zb /r:2 /w:2 /eta /LOG+:\\DEST\move.log /NP
 ) else (
    Robocopy "\\SOURCE\Logs" "\\DEST\Logs" *.log /s /zb /r:2 /w:2 /eta /LOG+:\\DEST\move.log /NP
)
popd
pause
这是您可以使用的格式:添加两条robocopy行

cd /d "c:\folder"
if exist *.7z (
  echo move files
 ) else (
  echo copy files
)

为了澄清,如果只有.7z文件,请移动它们。如果没有.7z文件,请复制(不移动).log文件。如果既有.log文件又有.7z文件,该怎么办?很抱歉延迟响应-生活变得忙碌起来!无论如何,如果两者都存在,我只想移动.7z文件,因为实际上,.7z文件实际上是.log文件的压缩版本。@foxdrive所以我写的robocopy命令会不会
code
cd/d“c:\folder”如果存在*.7z(Robocopy“\\SOURCE\Logs”“\\DEST\Logs”*.7z/mov/s/zb/r:2/w:2/eta/LOG+:\\DESTmove.LOG/NP echo移动文件)其他(Robocopy“\\SOURCE\Logs”“\\DEST\Logs”/s/zb/r:2/w:2/eta/LOG+:\\DEST\\move.LOG/NP echo复制文件)