Resultado de salida de WMIC: ¿eliminar línea en blanco?

Resultado de salida de WMIC: ¿eliminar línea en blanco?

Este script hace lo que quiero: producir el resultado en el archivo de texto 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"

Sin embargo, parece agregar una línea en blanco adicional en la parte inferior del resultado. ¿Hay alguna manera de evitar que esto suceda ya que el resultado del recuento de líneas de este texto es muy importante?

Respuesta1

No hay ninguna línea en blanco adicional en la parte inferior del resultado (probado 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

Sin embargo, puede agregar una línea en blanco adicional en la parte inferior del resultado de la siguiente manera:

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:

Tenga en cuenta el significado del /Ninterruptor:

  • /N Imprima el número de línea antes de cada línea que coincida.

y patrones de búsqueda:

  • ^ Posición de línea: comienzo de línea
  • $ Posición de línea: final de línea

Ver tambiénLote de Windows: eco sin nueva línea: utilizar <nul set /p =%Ken lugar 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>

información relacionada