zeusplanet
Goto Top

ERRORLEVEL-Übergabe in einer FOR-Schleife mit psexec

Hi Leute,

komme einfach nicht weiter, bzw. auf keine einfache Lösung.

Ich sichere mehrere Server über eine Batch (Drive Snapshot) und bin gerade dabei diese flexibler zu gestalten und überarbeite das Teil.
Soweit funktioniert auch alles, aber das verschicken der Mails inkl. Log-Datei klappt nicht, solange ich dies in meiner FOR-Schleife ausführe.

Klar, er sichert erst alle Server nacheinander und erst beim letzten Server bekomme ich eine Mail zugestellt. Natürlich nur mit dem letzten errorlevel.

for /F "delims=" %%i in ("!serverlist!") do for %%A in (%%i) do "%tools%\psexec.exe" /accepteula \\%%A -u %domain%\%user% -p %password% -c -f -h %workdir%\snapshot.exe C: %destination%\%%A\$computername_$disk_$type.sna -L307200 --AllWriters --AutoBackupSize:512 --CreateDir --FullIfHashIsMissing -RWT --exclude:"\Windows\Memory.dmp","\Windows\Minidump","\Windows\Temp" -h"%SystemDrive%\Snapshot_hash\$computername_$disk.hsh" --LogFile:%logs%\$computername.txt  
if '%errorlevel%'=='0' (  
   "%tools%\gbmail.exe" -v -to %mailrecipient% -h %mailserver% -from snapshot.%computername%@%maildomain% -s "Snapshot-Meldung: Auftrag erfolgreich" -file "%logs%\%computername%.txt"  
   ) else (
   "%tools%\gbmail.exe" -v -to %mailrecipient% -h %mailserver% -from snapshot.%computername%@%maildomain% -s "Snapshot-Meldung: Auftrag fehlgeschlagen" -file "%logs%\%computername%.txt"  
   )


Ich hoffe euch verwirren die Variablen nicht, sind ja aber eigentlich sprechend.
Irgendwer muss meinen Knoten im Kopf befreien.

PS.: Ja, ich schreib gern alles in eine Zeile! face-wink

Vielen Dank und Grüße
Michél

Content-ID: 235027

Url: https://administrator.de/contentid/235027

Ausgedruckt am: 22.11.2024 um 11:11 Uhr

bastla
Lösung bastla 09.04.2014, aktualisiert am 10.04.2014 um 10:11:45 Uhr
Goto Top
Hallo zeusplanet und willkommen im Forum!

Versuch es mit dieser Schreibweise (ungetestet):
for /F "delims=" %%i in ("!serverlist!") do for %%A in (%%i) do "%tools%\psexec.exe" /accepteula \\%%A -u %domain%\%user% -p %password% -c -f -h %workdir%\snapshot.exe C: %destination%\%%A\$computername_$disk_$type.sna -L307200 --AllWriters --AutoBackupSize:512 --CreateDir --FullIfHashIsMissing -RWT --exclude:"\Windows\Memory.dmp","\Windows\Minidump","\Windows\Temp" -h"%SystemDrive%\Snapshot_hash\$computername_$disk.hsh" --LogFile:%logs%\$computername.txt && (  
   "%tools%\gbmail.exe" -v -to %mailrecipient% -h %mailserver% -from snapshot.%computername%@%maildomain% -s "Snapshot-Meldung: Auftrag erfolgreich" -file "%logs%\%computername%.txt"  
   ) || (
   "%tools%\gbmail.exe" -v -to %mailrecipient% -h %mailserver% -from snapshot.%computername%@%maildomain% -s "Snapshot-Meldung: Auftrag fehlgeschlagen" -file "%logs%\%computername%.txt"  
   )
Grüße
bastla
zeusplanet
zeusplanet 10.04.2014 um 10:13:15 Uhr
Goto Top
Morgen bastla,

noch weniger Code und eine Lösung. Danke dir. Daumen hoch!

Grüße
Michél