Ausgabe eines Batchbefehls in Variable setzen und dann mit Systemzeit vergleichen
Moin,
mir raucht gerade echt der Schädel und ich werde im Netz nicht fündig.
Folgendes Problem:
Bei einem unserer Kunden ist die Uhrzeit im Raidcontroller der Dell Powervault ein- bis zweimal im Monat plötzlich asynchron.
Die Lösung:
Wir schreiben eine Batchdatei die die Uhrzeit im storage ausließt und diese mit der aktuellen Systemzeit vergleicht.
Ist diese gleich, so springt die batch wieder auf Anfang.
Ist sie ungleich, so synchronisiert die Batch die Uhrzeit und springt anschließend wieder auf Anfang.
Dieses Spiel soll auf einem Endgerät im Serverraum laufen.
Mein bisheriger Ansatz sieht wie folgt aus:
:repeat
@echo off
"C:\Program Files (x86)\Dell\MD Storage Software\MD Storage Manager\client\SMcli.exe" IP-Adresse -c "show storageArray time;" -p Kennwort
For /f %%i in "show storageArray time;" set Ergebnis=%%i
if %Ergebnis% NEQ %time:~0,8% goto :TIMESET
else goto :repeat
:TIMESET
"C:\Program Files (x86)\Dell\MD Storage Software\MD Storage Manager\client\SMcli.exe" IP-Adresse -c "set storageArray time;" -p Kennwort
Mein Problem ist, dass die Uhrzeit aus dem Show-Befehl wie folgt ausgegeben wird:
Performing syntax check...
Syntax check complete.
Executing script...
RAID Controller Module in Slot 0
Date/Time: Mon Aug 10 17:47:15 CEST 2015
RAID Controller Module in Slot 1
Date/Time: Mon Aug 10 17:46:05 CEST 2015
Script execution complete.
SMcli completed successfully.
Ich benötige nur das 17:47:15 der Ausgabe von Slot 0 für den Vergleich (das Slot 0 und slot 1 einen Zeitunterschied von 00:01:10 haben ist hierbei erstmal egal) um es mit der Systemzeit zu vergleichen.
Hat jemand ne Idee?
Danke und Gruß
JGS
mir raucht gerade echt der Schädel und ich werde im Netz nicht fündig.
Folgendes Problem:
Bei einem unserer Kunden ist die Uhrzeit im Raidcontroller der Dell Powervault ein- bis zweimal im Monat plötzlich asynchron.
Die Lösung:
Wir schreiben eine Batchdatei die die Uhrzeit im storage ausließt und diese mit der aktuellen Systemzeit vergleicht.
Ist diese gleich, so springt die batch wieder auf Anfang.
Ist sie ungleich, so synchronisiert die Batch die Uhrzeit und springt anschließend wieder auf Anfang.
Dieses Spiel soll auf einem Endgerät im Serverraum laufen.
Mein bisheriger Ansatz sieht wie folgt aus:
:repeat
@echo off
"C:\Program Files (x86)\Dell\MD Storage Software\MD Storage Manager\client\SMcli.exe" IP-Adresse -c "show storageArray time;" -p Kennwort
For /f %%i in "show storageArray time;" set Ergebnis=%%i
if %Ergebnis% NEQ %time:~0,8% goto :TIMESET
else goto :repeat
:TIMESET
"C:\Program Files (x86)\Dell\MD Storage Software\MD Storage Manager\client\SMcli.exe" IP-Adresse -c "set storageArray time;" -p Kennwort
Mein Problem ist, dass die Uhrzeit aus dem Show-Befehl wie folgt ausgegeben wird:
Performing syntax check...
Syntax check complete.
Executing script...
RAID Controller Module in Slot 0
Date/Time: Mon Aug 10 17:47:15 CEST 2015
RAID Controller Module in Slot 1
Date/Time: Mon Aug 10 17:46:05 CEST 2015
Script execution complete.
SMcli completed successfully.
Ich benötige nur das 17:47:15 der Ausgabe von Slot 0 für den Vergleich (das Slot 0 und slot 1 einen Zeitunterschied von 00:01:10 haben ist hierbei erstmal egal) um es mit der Systemzeit zu vergleichen.
Hat jemand ne Idee?
Danke und Gruß
JGS
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 279811
Url: https://administrator.de/forum/ausgabe-eines-batchbefehls-in-variable-setzen-und-dann-mit-systemzeit-vergleichen-279811.html
Ausgedruckt am: 08.01.2025 um 07:01 Uhr
5 Kommentare
Neuester Kommentar
Hallo JGS,
teste:
Grüße
rubberman
teste:
snip<
set "storageArraytime="
for /f "tokens=5" %%i in (
'"C:\Program Files (x86)\Dell\MD Storage Software\MD Storage Manager\client\SMcli.exe" IP-Adresse -c "show storageArray time;" -p Kennwort ^| findstr /c:"Date/Time:"'
) do if not defined storageArraytime set "storageArraytime=%%i"
if %storageArraytime% NEQ %time:~0,8% ....
snip<
Grüße
rubberman