Я пытаюсь написать скрипт, который автоматизирует копирование некоторых файлов из двух внешних мест с помощью Robocopy. Я хочу, чтобы скрипт пропустил шаг, если одно из мест недоступно. Я использую следующий скрипт:
@echo off
NET USE \\192.168.10.90\IPC$
ROBOCOPY \\192.168.10.90\lgrdata\ \ICOS\Analyser_backups\LGR_Flux\ /NP /TEE /E /dcopy:T /Z /LOG:C:\logfiles\LGR\robocopyjob_log.txt
NET USE \\192.168.10.90\IPC$ /D
NET USE \\192.168.10.91\IPC$
ROBOCOPY \\192.168.10.91\lgrdata\ \ICOS\Analyser_backups\LGR_Profile\ /NP /TEE /E /dcopy:T /Z /LOG+:C:\logfiles\LGR\robocopyjob_log.txt
NET USE \\192.168.10.91\IPC$ /D
robocopy C:\ICOS\Analyser_backups\ Z:\Analyser_backups\ /NP /TEE /E /dcopy:T /Z /LOG+:C:\logfiles\LGR\robocopyjob_log.txt
for /f "tokens=2-8 delims=.:/ " %%a in ("%date% %time: =0%") do rename "C:\logfiles\LGR\robocopyjob_log.txt" rclog_%%c-%%a-%%b_%%d%%e.txt
Это прекрасно работает, когда оба сетевых расположения доступны. Я хочу, чтобы сценарий продолжался, если ни одно из этих мест отсутствует. Я получаю сообщение об ошибке 53, когда один инструмент отсутствует, а затем происходит 30-секундное ожидание, а затем соединение повторяется. Это продолжается вечно.
Я пытался использовать IF ERRORLEVEL 53 GOTO
Если я поставлю это после команды NET USE
, она будет игнорироваться. Если я помещу его в начало сценария, сценарий закрывается, ничего не делая.
Любые идеи, как я могу пропустить шаг, если инструмента нет? Возможно, есть какой-то способ использования PING
чтобы определить, существует ли он первым?