Batch Ausgabe von smartctl per Batch aufbereiten

stna1981

Commander
Registriert
März 2007
Beiträge
2.579
Hi zusammen,

ich würde gerne einen kleinen Statuscheck für meine Festplatten haben, der mir anzeigt, ob die Platten angehalten sind (spin down) oder nicht. Die einzige Möglichkeit, die ich bisher dafür gefunden habe, ist smartctl:

Code:
smartctl.exe -n standby c:

Am schönsten wär ne App mt GUI dafür, aber davon hab ich keine Ahnung. Ich würde mir daher gerne wenigstens ein Batchfile bauen, das für alle Platten den Status abfragt. Das Ganze wird aber erst schön, wenn ich die Ausgabe von smartctl parsen kann, die da lautet:

Code:
smartctl 6.5 2016-05-07 r4318 [x86_64-w64-mingw32-win10] (sf-6.5-1)
Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org

Device is in ACTIVE or IDLE mode

Interessant ist für mich nur die letzte Zeile, die ich dann gerne um den jeweiligen Laufwerksbuchstaben angereichert ausgeben möchte:

Code:
Drive C - Device is in ACTIVE or IDLE mode

Wie bekomme ich das mit einfachen Batchmitteln hin, sprich mir vom Output jeweils nur die letzte Zeile (vierte) zu nehmen?

Viele Grüße

Stefan
 
Wenn die Zeile, die dich interessiert, die einzige ist, die das Wort "Device" enthält, dann mit:

smartctl.exe -n standby c: | find "Device"
 
Ah ok, das bringt mich schonmal weiter :)
Jezt noch das Problem, dass er bei Laufwerken, die Idle sind, die Zeile wie folgt ausgibt:

Code:
d:: Device is in STANDBY (OS) mode, exit(2)

Kann man das irgendwie hinbekommen, dass er alles VOR dem Wort 'Device' und (nice-to-have) nach dem Wort 'mode' abschneidet?

Und was muss ich machen, um einen eigenen String am Anfang der Zeile einzufügen?
 
smartctl.exe -n standby c: | find "Device" | powershell -C "([string]$Input) -replace '^d:: ','' -replace ', exit\(2\)$','' "

Um einen konstanten Text am Anfang einzufügen, kannst du mit replace arbeiten:

smartctl.exe -n standby c: | find "Device" | powershell -C "([string]$Input) -replace '^d:: ','' -replace ', exit\(2\)$','' -replace '^','MEIN TEXT: ' "
 
Zurück
Oben