Скрипт Robocopy для перемещения файлов 7z, но если есть файлы .log, скопируйте их

У меня есть сценарий (задание A), который запускает сценарий Robocopy для копирования всех несжатых файлов .log с нескольких машин каждую ночь. Я завершил процесс (задание B), в котором файлы .log сжимаются в файлы .7z перед заданием A. Поскольку многие исходные машины будут иметь комбинацию файлов .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

echo Процесс копирования завершен

Кто-нибудь может помочь?


person delprimero    schedule 28.02.2014    source источник
comment
Просто чтобы уточнить, если есть только файлы .7z, переместите их. Если файлов .7z нет, скопируйте (не перемещайте) файлы .log. Что делать, если есть файлы .log и .7z?   -  person MC ND    schedule 28.02.2014
comment
Извините за задержку с ответом - жизнь наладилась! В любом случае, если оба присутствуют, я просто хочу переместить только файлы .7z, поскольку, по сути, файлы .7z на самом деле являются сжатыми версиями файлов .log.   -  person delprimero    schedule 17.03.2014


Ответы (1)


EDIT: Вот измененный код с использованием строк 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
)
person foxidrive    schedule 01.03.2014
comment
@foxdrive Итак, исходя из того, что я написал в качестве команд robocopy, будет ли это... codecd /dc:\folder, если существует *.7z (Robocopy \\SOURCE\Logs \\DEST\Logs *.7z /mov /s / zb /r:2 /w:2 /eta /LOG+:\\DESTmove.log /NP echo move files ) else (Robocopy \\SOURCE\Logs \\DEST\Logs /s /zb /r:2 /w:2 /eta /LOG+:\\DEST\\move.log /NP файлы эхо-копии )code - person delprimero; 17.03.2014