该脚本完成了我想要它做的事情 - 生成了在 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>