Remover aspas na saída do Forfiles {cmd}

3

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

Hacker Dude
fonte

Respostas:

2

Como faço para remover as aspas de uma variável em um cmdshell?

Você precisa usar a ~extensão de parâmetro junto for /fpara 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:

  • %~1Expandir a %1remoção de quaisquer aspas circundantes (")
  • Em um arquivo em lotes, substitua %ipor %%ie %~ipor%%~i

Leitura adicional

DavidPostill
fonte
0

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.

Hayz
fonte