Forfiles output {cmd} içindeki alıntıları kaldır


3

Bu yüzden bu komutu çalıştırıyorum:

FORFILES /S /M *.dmg /C "cmd /c if @fsize equ 1595694080 echo @fname"

ve çıktı:

"058-26174-078"

ama sorun şu ki, alıntılar olmadan adı istiyorum.

bunun gibi: 058-26174-078

Yanıtlar:


2

Tırnakları cmdkabuktaki bir değişkenden nasıl kaldırırım ?

Bunu yapmak için ~parametre uzantısını birlikte kullanmanız gerekir for /f.

Aşağıdaki komutu kullanın:

for /f %i in ('FORFILES /S /M *.dmg /C "cmd /c if @fsize equ 1595694080 echo @fname"') do @echo %~i

Bir değişkeni ayarlamak için ve bir toplu iş dosyasında aşağıdaki komutu kullanın:

for /f %%i in ('FORFILES /S /M *.dmg /C "cmd /c if @fsize equ 1595694080 echo @fname"') do @set MyVariable=%%~i

Notlar:

  • %~1%1Çevreleyen tırnak işaretlerini kaldırarak genişletin (")
  • Bir toplu dosyasında yerini %iile %%ive %~iile%%~i

Daha fazla okuma

  • Windows CMD komut satırının AZ Dizini - Windows cmd satırının ilgili olduğu her şey için mükemmel bir referans.
  • parameters - Bir komut satırı argümanı (veya parametresi), bir toplu iş komut dosyasına iletilen herhangi bir değerdir.

0

For komutunu kullanın, işte bir örnek:

@echo off
FORFILES /S /M *.dmg /C "cmd /c if @fsize equ 1595694080 set quote=@fname"
for %%a in (%quote%) do set dequote=%%~a

Dequoted dizgisini almak için% dequote% değişkenini kullanabilirsiniz, sözdizimi yanlış yapmış olabilirim çünkü forfiles komutuyla hiç çalışmamıştım.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.