2013-11-27 3 views
2

Я создал пакетный скрипт, который имеет следующий контент. Но скрипт завершается после выполнения первого оператора. Я много googled, но не могу найти ничего полезного. Однако отдельные заявления могут выполняться отдельно. PFB сценарийВыполнение пакетного файла после выполнения первой команды

Любое предложение оценено.

set AWS_SNAPSHOT_KEEP=1 

:: Create a file with all attached volumes 
::ec2-describe-volumes|find /i "attached">%EC2_HOME%\Volumes.txt 

:: Create snapshot for this volume 
for /f "tokens=2" %%s in (%EC2_HOME%\Volumes.txt) do ec2-create-snapshot %%s 

:: Find old snapshots for this volume. 
for /f "tokens=2" %%s in (%EC2_HOME%\Volumes.txt) do ec2-describe-snapshots --filter "volume-id=%%s">%EC2_HOME%\Snapshots.txt 

::Copy Snapshot across multiple regions. 
for /f "tokens=2" %%s in (%EC2_HOME%\Snapshots.txt) do ec2-copy-snapshot -r us-west-2 -s %%s -region us-east-1 

:: Loop over old snapshots, skip the first 1, delete the rest 
for /f "tokens=2 skip=%AWS_SNAPSHOT_KEEP%" %%s in (%EC2_HOME%\snapshots.txt) do ec2-delete-snapshot %%s 

Спасибо и уважением, Джиоти

+0

Вы пытались поставить 'echo' s, чтобы посмотреть, как далеко он доберется? –

+0

@DwayneTowell: он выполняет только первый оператор, т. Е. Для/f "tokens = 2" %% s in (% EC2_HOME% \ Volumes.txt) do ec2-create-snapshot %% s –

ответ

5

ec2-create-snapshot и друзья сами пакетные сценарии, если они являются Amazon EC2 API Tools, что я нашел в Интернете. Они звонят exit, когда они будут сделаны. Это также выходит за ваш пакетный скрипт.

Вместо этого попробуйте использовать call перед командами ec2.

for /f "tokens=2" %%s in (%EC2_HOME%\Volumes.txt) docallec2-create-snapshot %%s

Нанести по мере необходимости для других команд EC2.

Подробнее см. На выходе help exit и help call.

Общие идиомы спать в пакетном режиме, чтобы пинг локальной машины:

@ping -n 2 -w 1000 127.0.0.1 > NUL 

Это «спит» в течение приблизительно 2 * 1000 миллисекунд = 2 секунды пинга на локальную машине в два раз с задержкой на 1 секунду между каждым. Добавьте это по мере необходимости.

+0

Да, теперь его работа, также может и скажите мне, как я могу вставить ожидание между этими утверждениями? –

+0

ладно, спасибо кучу. :) :) Можете ли вы также сказать мне, что он печатает первые несколько statemennts на консоли, как я могу удалить их и добавить свои комментарии? –

+0

Это все разные вопросы. Вы пытались найти их? Это будет быстрее, чем просить здесь. Если это не сработает, вы, вероятно, захотите задать * новый * вопрос в * новой * теме. – chwarr

Смежные вопросы