Este script faz o que eu quero - produzindo o resultado no arquivo txt anotado.
(@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"
No entanto, parece adicionar uma linha extra em branco na parte inferior do resultado. Existe alguma maneira de impedir que isso aconteça, pois o resultado da contagem de linhas deste txt é muito importante?
Responder1
Não há linha extra em branco na parte inferior do resultado (comprovado usandofindstr.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
No entanto, você pode adicionar uma linha extra em branco na parte inferior do resultado da seguinte maneira:
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:
Observe o significado da /N
mudança:
/N
Imprima o número da linha antes de cada linha correspondente.
e padrões de pesquisa:
^
Posição da linha: início da linha$
Posição da linha: fim da linha
Veja tambémLote do Windows: eco sem nova linha: use <nul set /p =%K
em vez de 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>