2008-09-16 10 views
18

Próbuję skryptować zamknięcie moich serwerów VM w pliku .bat. jeśli jedno z poleceń vmware-cmd się nie powiedzie (jak już zostało napisane, że maszyna jest już zamknięta), chciałbym, aby kontynuował zamiast bombardowania.Jak uzyskać plik wsadowy .bat przejdź do następnej instrukcji, jeśli wystąpił błąd

c: 
cd "c:\Program Files\VMWare\VmWare Server" 

vmware-cmd C:\VMImages\TCVMDEVSQL01\TCVMDEVSQL01.vmx suspend soft -q 
vmware-cmd C:\VMImages\DevEnv\DevEnv\DevEnv.vmx suspend soft -q 
vmware-cmd C:\VMImages\DevEnv\TCVMDEV02\TCVMDEV02.vmx suspend soft =q 


robocopy c:\vmimages\ \\tcedilacie1tb\VMShare\DevEnvironmentBackups\ /mir /z /r:0 /w:0 

vmware-cmd C:\VMImages\TCVMDEVSQL01\TCVMDEVSQL01.vmx start 
vmware-cmd C:\VMImages\DevEnv\DevEnv\DevEnv.vmx start 
vmware-cmd C:\VMImages\DevEnv\TCVMDEV02\TCVMDEV02.vmx start 

Odpowiedz

26

uruchomić go wewnątrz innej instancji polecenia z CMD /C

CMD /C vmware-cmd C:\... 

Ten powinien zachować oryginalne pliki BAT uruchomiony.

3

Czy próbowałeś użyć "start (cmd)" dla każdego wykonywanego polecenia?

0

Można napisać mały program, który wykonuje polecenie i zwraca wartość (na przykład -1 dla błędu). Tę wartość można następnie wykorzystać w pliku wsadowym.

0

Plik wsadowy powinien kontynuować wykonywanie, nawet jeśli poprzednie polecenie spowodowało błąd. Być może, to, co próbujesz, to poronienie z powodu jakiegoś innego błędu?

4

Jeśli dzwonisz inny plik wsadowy, należy użyć CALL batchfile.cmd

+0

I dzwonił kilka plików wsadowych (query1.bat query2.bat) z głównego miejsca pracy (morning.bat) i dowolnym czasie jednej z małe pliki .bat uderzyły w błąd "nie znaleziono pliku" podczas czyszczenia starych dzienników, wszystko się zatrzymało. To załatwiło sprawę. +1 i dzięki. –

Powiązane problemy