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
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:
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 (")%iile %%ive %~iile%%~iFor 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.