Daha gelişmiş bir örnek:
⍟ sınırsız argümanlar.
⍟ dosya sisteminde (ya file
da directory
?) Ya da genel string
.
⍟ dosya olup olmadığını belirtin
⍟ bir dizin olduğunu belirtin
⍟ uzantı yok , eski komut dosyalarında çalışır!
⍟ minimum kod ☺
@Eko kapalı
: döngü
:: -------------------------- argüman mı var?
["% ~ 1"] == [""] (
yankı bitti.
sona git
)
:: -------------------------- argüman var mı?
yoksa% ~ s1 (
yankı yok
) Başka (
yankı var
% ~ s1 \ NUL (
echo bir dizindir
) Başka (
echo bir dosyadır
)
)
:: --------------------------
vardiya
döngüye git
:son
Duraklat
✨ diğer şeyler..✨
■ in %~1
- ~
herhangi bir ambalajı kaldırır "
veya '
.
■ in %~s1
- the s
, yolun olmasını sağlar DOS 8.3 naming
; bu, öğeleri kontrol ederken dosya adında boşluklardan kaçınmak için güzel bir yöntemdir (ve bu şekilde, kaynağı daha fazla URL ile sarmaya gerek kalmaz "
.
■ ["%~1"]==[""]
bağımsız değişken bir dosya / dizin veya sadece genel bir dize ise "emin olamıyorum", bu nedenle ifade parantezler ve orijinal değiştirilmemiş %1
( "
eğer varsa ..)
Eğer kullanmış olsaydık shift
ve arg-list işaretçisi sonuncuyu geçtiyse, herhangi bir argüman yoksa , ifade değerlendirilecektir [""]==[""]
.
■ bu, daha fazla numara kullanmadan yapabileceğiniz kadar spesifiktir (Windows 95'in toplu komut dosyalarında bile çalışır ...)
■ yürütme örnekleri
farklı kaydet identifier.cmd
sınırsız argümanları tanımlayabilir (normalde %1
- ile sınırlandırılırsınız %9
), argümanları ters virgülle sarmayı veya 8.3 adlandırma kullanmayı veya bunları sürükleyip bırakmayı unutmayın (yukarıdakilerden herhangi birini otomatik olarak yapar).
bu, aşağıdaki komutları çalıştırmanıza izin verir:
⓵ identifier.cmd c:\windows
ve almak
var olmak
bir dizindir
bitti
⓶ identifier.cmd "c:\Program Files (x86)\Microsoft Office\OFFICE11\WINWORD.EXE"
ve almak
var olmak
bir dosyadır
bitti
⓷ ve birden fazla argüman (elbette tüm anlaşma budur ..)
identifier.cmd c:\windows\system32 c:\hiberfil.sys "c:\pagefile.sys" hello-world
ve almak
var olmak
bir dizindir
var olmak
bir dosyadır
var olmak
bir dosyadır
yok
bitti.
doğal olarak çok daha karmaşık olabilir,
ancak güzel örnekler her zaman basit ve asgari düzeyde olmalıdır. :)
Umarım herkese yardımcı olur :)
burada yayınlandı: CMD Ninja - Sınırsız Bağımsız Değişken İşleme, Dosya Sisteminde Varsa Tanımlama, Dosya Veya Dizin Olup Olmadığını Tanımlama
ve işte herhangi bir miktarda APK dosyası (Android uygulamaları) alan ve bunları hata ayıklama konsolu (ADB.exe) aracılığıyla cihazınıza yükleyen çalışan bir örnek: Önceki Yazıyı ADB Install-Multi Sözdizimini Kullanmayan
Bir Toplu APK Yükleyicisi Yapın