WMIC-Batchdatei zum Durchlaufen von CSV und Abrufen des Laufwerkstatus

466
Keiren Medlock

Ich verwende diesen Code, um den Laufwerkstatus der Remote-PCs in meinem Unternehmen zu überprüfen

for /f "tokens=1 delims= " %%a in (C:\temp\HOSTNAMES.csv) do ( WMIC /Node:%%a DiskDrive GET Caption, Status ) 

Dies funktioniert gut, aber ich muss den Status (OK) oder (Pred Fail) für jeden PC-Hostnamen in unserem Netzwerk erfassen und einen einfachen CSV-Bericht erstellen, da über 2000 PCs zu prüfen sind

so würde der Bericht so aussehen

PC HOSTNAME - STATUS HOSTNAME01A - OK HOSTNAME02B - Pred Fail HOSTNAME03C - Pred Fail HOSTNAME04D - OK 

Ich habe wirklich Schwierigkeiten, den Laufwerkstatus einer Variablen zuzuweisen, damit ich den Bericht erstellen kann.

0
Hängen Sie die WMIC-Ausgabe an eine Textdatei an. Entfernen Sie dann Header mit FIND / v aus dieser Datei Akina vor 5 Jahren 0
Hallo Akina, vielen Dank für Ihre Antwort. Würde es Ihnen etwas ausmachen, den Code in meinen ursprünglichen Code zu schreiben? Danke noch einmal. Keiren Medlock vor 5 Jahren 0
Die Option / NODE übernimmt auch einen Dateinamen als Eingabe. `wmic / node: @ Hostnames.txt`. Squashman vor 5 Jahren 0

2 Antworten auf die Frage

1
LotPings
  • "tokens=1 delims= " ist die Standardeinstellung und muss nicht ausgedrückt werden.
  • Bei der Verwendung von wmic mit dem wird /Format:csvder Knoten Teil der Ausgabe sein

:: Q:\Test\2018\10\30\SU_1371253.cmd @Echo off SetLocal EnableExtensions EnableDelayedExpansion  ( for /f %%H in (HOSTNAMES.csv) do ( Echo:Processing %%H>CON: for /f "delims=" %%A in (' WMIC /node:%%H DiskDrive GET Caption^,Status /Format:csv ^|findstr /i "%%H" ') do @Echo %%A ) ) > "%~dpn0.Log" 
Hallo LotPings, vielen Dank für deine Antwort, wenn sie perfekt funktioniert hat. Keiren Medlock vor 5 Jahren 0
Vergessen Sie nicht zu erwähnen, dass die Ausgabedatei den gleichen Speicherort und Namen hat wie der Stapel, jedoch die Erweiterung ".Log" LotPings vor 5 Jahren 0
0
MC ND

Wie von LotPings angegeben, enthält das csvAusgabeformat den Knotennamen. Wenn wir dies mit der Fähigkeit kombinieren, die Hostliste wmicaus einer Datei zu lesen, können wir sie verwenden

wmic /node:@"c:\temp\hostnames.csv" DiskDrive get Caption,Status /format:csv > report.csv 

Oder

wmic /node:@"c:\temp\hostnames.csv" /output:"report.csv" DiskDrive get Caption,Status /format:csv 

Auf diese Weise starten wir wmicfür jeden Knoten nur einen Prozess anstelle von einem Prozess.