Resultado de saída WMIC - Remover linha em branco?

Resultado de saída WMIC - Remover linha em branco?

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 /Nmudanç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 =%Kem 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>

informação relacionada