ich schreibe gerade ein Backup.-Batch für den VMWare free Server auf WIndows, den Status könnt ihr im Thread http://vmware-forum.de/viewtopic.php?p=29367#29367 nachschauen.
Hier das Problem:
Ich will per Batch den Status der VM abfragen, kann aber den Returncode nicht abfangen, bin am verzweifeln:
Code: Alles auswählen
::Abfrage ob VM läuft oder nicht
::------------------------------
:: wenn nicht nur backup, wenn ja suspend-backup-continue
call "%VMCMDPFAD%" "%VMSTOREPFAD%\%1\%VMXFILE%" getstate ¦ FIND "on" > NUL
if errorlevel 2 ECHO ---2---
if errorlevel 1 ECHO ---1---Hier der komplette Batchcode fyi, bin für jede Hilfe dankbar:
Code: Alles auswählen
:: Lucia VM-Ware Backup Batch
:: ASP: Baumann
:: ------------------
::Echo aus und CLS
::----------------
@echo off
cls
::Variablen Festlegen
::-------------------
SET VMCMDPFAD=C:\Programme\VMware\VMware Server\vmware-cmd.bat
SET VMSTOREPFAD=F:\Virtual Machines
SET VMBACKUPPFAD=F:\Virtual Machines\_backups_
SET BACKUPTOOL=F:\Virtual Machines\_backups_\7za.exe
:: SET VMXFILE=Windows 2000 Professional.vmx
SET VMXFILE=%2
:: Abfrage ob Hilfe
:: ----------------
IF "%1"=="" goto HELP
IF "%1"=="/?" goto HELP
IF "%1"=="?" goto HELP
IF "%1"=="help" goto HELP
IF "%1"=="/help" goto HELP
IF "%1"=="h" goto HELP
IF "%1"=="/h" goto HELP
::Abfrage ob VM läuft oder nicht
::------------------------------
:: wenn nicht nur backup, wenn ja suspend-backup-continue
call "%VMCMDPFAD%" "%VMSTOREPFAD%\%1\%VMXFILE%" getstate ¦ FIND "on" > NUL
if errorlevel 2 ECHO ---2---
if errorlevel 1 ECHO ---1---
goto END
:vmruns
:: Backup bei laufender Maschine
:: -------------------------
::Suspend der VM
echo suspend:
call "%VMCMDPFAD%" "%VMSTOREPFAD%\%1\%VMXFILE%" suspend
echo.
echo rename:
:: rename des alten BAckup in old, dabei überschreiben des vorherigen alten Backups
move "%VMBACKUPPFAD%\%1.zip" "%VMBACKUPPFAD%\OLD_%1.zip"
echo.
echo backup
:: BAckup der VM Dateien in eine CAB File
"%BACKUPTOOL%" a -tzip -mmt=on -y "%VMBACKUPPFAD%\%1.zip" "%VMSTOREPFAD%\%1\*"
echo.
echo start der vm
:: Starten der VM nach Backup
call "%VMCMDPFAD%" "%VMSTOREPFAD%\%1\%VMXFILE%" start
echo.
goto END
:vmstands
:: Backup bei stehender Maschine
:: -------------------------
echo rename:
:: rename des alten BAckup in old, dabei überschreiben des vorherigen alten Backups
move "%VMBACKUPPFAD%\%1.zip" "%VMBACKUPPFAD%\OLD_%1.zip"
echo.
echo backup
:: BAckup der VM Dateien in eine CAB File
"%BACKUPTOOL%" a -tzip -mmt=on -y "%VMBACKUPPFAD%\%1.zip" "%VMSTOREPFAD%\%1\*"
echo.
goto END
:HELP
ECHO ###########################################################################
ECHO # #
ECHO # backupVMs -VM- -VMXFILE- #
ECHO # #
ECHO # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
ECHO # #
ECHO # -VM- Name der VM ohne Leerzeichen und Pfad z.B. LuciaVM01 #
ECHO # #
ECHO # #
ECHO # #
ECHO # -VMXFILE- Name der VMX Datei ohne Leerzeichen und Pfad z.B. LuciaVM01 #
ECHO # #
ECHO # #
ECHO # -- andere Pfade und Variablen siehe Sourcecode -- #
ECHO # #
ECHO # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
ECHO # #
ECHO # typischer Aufruf: #
ECHO # #
ECHO # backupVMs LuciaVM01 Windows2000.vmx #
ECHO # #
ECHO # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
ECHO # #
ECHO # Coded by Baumann dez_2006 #
ECHO # #
ECHO ###########################################################################
goto END
:END
:: This is the end - my only friend - the end *sing*
:: Mensch, das ganze Code hacken macht einen echt wuschig B~7
