1

В настоящее время у меня есть пакетный скрипт, где я использую "set /p =". Как только переменная введена, скрипт выполняет 3 команды robocopy, используя приведенные выше. После того, как 3 команды robocopy закончились, я использую другую команду «set /p again =», чтобы спросить, нужно ли пользователю запускать это снова. Иногда этот скрипт должен работать против 10-15 целых чисел.

Есть ли способ дать список целых чисел, разделенных запятыми или иным образом, и иметь цикл сценария обратно для каждого последующего целого числа?

@echo off :again echo This script will download incident data in 2 steps. echo Step 1 will attempt to download any previously archived data from your home drive. echo Step 2 will attempt to download any files from the Live Incident folder. set /p incident=Please enter the Incident Number: robocopy "\\server1\share\%incident%" "C:\local-path\%incident%" *.* /ETA /MOV /E /R:1 /W:1 /MT:3 robocopy "\\server2\share\%incident%" "C:\local-path\%incident%" *.* /ETA /E /R:1 /W:1 /MT:2 robocopy "\\server3\share\%incident%" "C:\local-path\%incident%" *.* /ETA /E /R:1 /W:1 /MT:2 set /p again=Do you have another Incident you would like to try? if /i "%again:~,1%" EQU "Y" goto again if /i "%again:~,1%" EQU "N" exit /b

1 ответ1

0
@echo off
:again
echo This script will download incident data in 2 steps.
echo Step 1 will attempt to download any previously archived data from your home drive.
echo Step 2 will attempt to download any files from the Live Incident folder.

set /p "incidents=Please enter the Incident Numbers separated by a comma:"

For %%I in (%Incidents%) Do Call :Process %%I
CHOICE /C YN /M "Do you have another Incident you would like to try?"
If %ErrorLevel% Equ 1 Goto :again
Goto :Eof

:Process %1
:: you might do a range check on the Incident no. %1
Echo Processing Incedent # %1
:: while testing 
goto :Eof
robocopy "\\server1\share\%1" "C:\local-path\%casenum%" *.* /ETA /MOV /E /R:1 /W:1 /MT:3
robocopy "\\server2\share\%1" "C:\local-path\%casenum%" *.* /ETA      /E /R:1 /W:1 /MT:2
robocopy "\\server3\share\%1" "C:\local-path\%casenum%" *.* /ETA      /E /R:1 /W:1 /MT:2
Goto :Eof

Если вывод выглядит нормально, удалите goto :eof следующее :: while testing

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .