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>

相关内容