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:
-
Substitua cada um dos únicos
%
por um duplo%%
. -
Adicione backticks
(')
em torno do comando executado porfor
. -
Pipe
|
o comandowmic
parafindstr /r /v "^$"
para remover as linhas em branco (o que removerá aECHO 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
- Um índice A-Z da linha de comando do Windows CMD - Uma excelente referência para todas as coisas relacionadas à linha do Windows cmd.
- findstr - Pesquise strings em arquivos.
- para / f - Comando Loop contra os resultados de outro comando.
- sintaxe - Escape Characters, Delimiters e Quotes.