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

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


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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.