該腳本執行我希望它執行的操作 - 在記錄的 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>