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:
cmd
kabuktaki 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 (")%i
ile %%i
ve %~i
ile%%~i
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.