Como posso remover a última linha em branco de um comando wmic?

4

Em um lote que eu quero usar:

FOR /F "usebackq skip=1" %I IN (wmic datafile where Name^="D:\TOTO.EXE" get Version) DO (ECHO %I)

e deseja restringir o ECHO, não tendo um ECHO is on. para a última linha vazia.

Como posso fazer isso?

    
por durin 30.05.2016 / 21:31

1 resposta

3

Eu não quero ter um ECHO para a última linha que está vazia

FOR /F "usebackq skip=1" %I IN (wmic datafile where Name^="D:\TOTO.EXE" get Version) DO (ECHO %I)

Existem algumas coisas que você precisa mudar para o acima para trabalhar em um arquivo de lote:

  1. Substitua cada um dos únicos % por um duplo %% .

  2. Adicione backticks (') em torno do comando executado por for .

  3. Pipe | o comando wmic para findstr /r /v "^$" para remover as linhas em branco (o que removerá a ECHO is on. de saída.

Juntando tudo, use o seguinte arquivo de lote (test.cmd):

@echo off
setlocal
for /f "usebackq skip=1" %%i in ('wmic datafile where Name^="D:\TOTO.EXE" get Version ^| findstr /r /v "^$"') do (echo %%i)
endlocal

Você receberá uma saída de linha única, semelhante à seguinte:

F:\test>test
6.1.7600.16385
por 30.05.2016 / 22:44