WMIC 輸出結果 - 刪除空白行?

WMIC 輸出結果 - 刪除空白行?

該腳本執行我希望它執行的操作 - 在記錄的 txt 檔案中產生結果。

(@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"

但是,它似乎在結果底部添加了一個額外的空白行。有什麼方法可以阻止這種情況發生,因為該 txt 的行計數結果非常重要?

答案1

結果底部沒有多餘的空白行(使用證明findstr.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

但是,您可以在結果底部新增一個額外的空白行,如下所示:

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:

注意開關的含義/N

  • /N 在每個符合的行之前列印行號。

和搜尋模式:

  • ^ 行位置:行首
  • $ 行位置:行尾

也可以看看Windows 批次:回顯而不換行: 使用<nul set /p =%K而不是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>

相關內容