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

时间:2014-02-28 16:01:14

标签: batch-file if-statement copy move robocopy

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

我简要介绍了如何使用IF命令,但无法看到如何完全合并。我不确定这是否可能。

当前作业A脚本如下:

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

echo复制过程已完成

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

编辑:以下是使用您在评论中提供的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
)