WMIC-Ausgabeergebnis – Leere Zeile entfernen?

WMIC-Ausgabeergebnis – Leere Zeile entfernen?

Dieses Skript macht, was ich will – es erzeugt das Ergebnis in der angegebenen TXT-Datei.

(@for /F "delims=" %I in ('wmic path Win32_VideoController get DriverVersion /VALUE') do @for /F "tokens=1* delims==" %J in ("%I") do @echo/%K) > "C:\Users\Public\AppData\Roaming\GPU\DriverVersion.txt"

Allerdings scheint es, als würde am Ende des Ergebnisses eine zusätzliche Leerzeile hinzugefügt. Kann ich das irgendwie verhindern, da das Zeilenzählergebnis aus diesem Text sehr wichtig ist?

Antwort1

Es gibt keine zusätzliche Leerzeile am Ende des Ergebnisses (bewiesen durchfindstr.exe):

d:\bat> (@for /F "delims=" %I in ('wmic path Win32_VideoController get DriverVersion /VALUE') do @for /F "tokens=1* delims==" %J in ("%I") do @echo/%K) > DriverVersion.txt

d:\bat> findstr /N "^" DriverVersion.txt
1:23.21.13.8813

d:\bat> findstr /N "$" DriverVersion.txt
1:23.21.13.8813

Sie können jedoch am Ende des Ergebnisses wie folgt eine zusätzliche Leerzeile hinzufügen:

d:\bat> echo(>> DriverVersion.txt

d:\bat> findstr /N "^" DriverVersion.txt
1:23.21.13.8813
2:

d:\bat> findstr /N "$" DriverVersion.txt
1:23.21.13.8813
2:

Bedeutung des /NSchalters beachten:

  • /N Drucken Sie die Zeilennummer vor jeder übereinstimmenden Zeile.

und Suchmuster:

  • ^ Zeilenposition: Zeilenanfang
  • $ Zeilenposition: Zeilenende

Siehe auchWindows-Batch: Echo ohne neue Zeile: <nul set /p =%Kanstelle von verwenden echo/%K.

d:\bat> (@for /F "delims=" %I in ('wmic path Win32_VideoController get DriverVersion /VALUE') do @for /F "tokens=1* delims==" %J in ("%I") do @<nul set /p =%K) > DriverVersion.txt

d:\bat> findstr /N "^" DriverVersion.txt
1:23.21.13.8813
d:\bat> findstr /N "$" DriverVersion.txt

d:\bat>

verwandte Informationen