Então, eu estou executando este comando:
FORFILES /S /M *.dmg /C "cmd /c if @fsize equ 1595694080 echo @fname"
e a saída:
"058-26174-078"
mas o problema é que eu quero o nome sem as aspas
como isso: 058-26174-078
Então, eu estou executando este comando:
FORFILES /S /M *.dmg /C "cmd /c if @fsize equ 1595694080 echo @fname"
e a saída:
"058-26174-078"
mas o problema é que eu quero o nome sem as aspas
como isso: 058-26174-078
Respostas:
cmd
shell?Você precisa usar a ~
extensão de parâmetro junto for /f
para fazer isso.
Use o seguinte comando:
for /f %i in ('FORFILES /S /M *.dmg /C "cmd /c if @fsize equ 1595694080 echo @fname"') do @echo %~i
Para definir uma variável e em um arquivo em lotes, use o seguinte comando:
for /f %%i in ('FORFILES /S /M *.dmg /C "cmd /c if @fsize equ 1595694080 echo @fname"') do @set MyVariable=%%~i
Notas:
%~1
Expandir a %1
remoção de quaisquer aspas circundantes (")%i
por %%i
e %~i
por%%~i
Use o comando for, aqui está um exemplo:
@echo off
FORFILES /S /M *.dmg /C "cmd /c if @fsize equ 1595694080 set quote=@fname"
for %%a in (%quote%) do set dequote=%%~a
E você pode usar a variável% dequote% para obter a string dequoted, eu posso ter errado a sintaxe porque nunca trabalhei com o comando forfiles.