Diğerleri zaten söylediler, komut satırına geçirilen parametreler gösterimi ile toplu dosyalarında erişilebilir %1
için %9
. Kullanabileceğiniz iki simge daha vardır:
%0
bir komut hattı belirtildiği gibi yürütülebilir (parti dosya) adı .
%*
olduğu komut satırında belirtilen tüm parametreler - başka bir programa parametre iletmek istiyorsanız bu çok kullanışlıdır.
Ayrıca, parametrelere nasıl erişileceğinin yanı sıra dikkat edilmesi gereken birçok önemli teknik vardır.
Bir parametrenin iletilip iletilmediğini kontrol etme
Bu, IF "%~1"==""
ancak hiçbir argümanın geçilmemesi durumunda doğrudur. Çevresindeki tırnak işaretlerinin değerinden kaldırılmasına neden olan tilde karakterine dikkat edin %1
; tilde olmadan, sözdizimi hataları olasılığı da dahil olmak üzere çift tırnak işareti içeriyorsa beklenmedik sonuçlar alırsınız.
9'dan fazla argümanı ele almak (ya da sadece hayatı kolaylaştırmak)
9'dan fazla bağımsız değişkene erişmeniz gerekiyorsa, komutu kullanmanız gerekir SHIFT
. Bu komut kaymalar bir yerde tüm argümanlar değerlerini, böylece %0
değerini alır %1
, %1
değerini alır %2
, vb %9
çağırmadan önce herhangi bir değişken yoluyla mevcut değildi ki, (eğer mevcutsa) onuncu argüman değerini alır SHIFT
(girmek komutaSHIFT /?
).
SHIFT
belirli bir sırada sunulmasını gerektirmeden parametreleri kolayca işlemek istediğinizde de yararlıdır. Örneğin, bir komut dosyası bayrakları -a
ve -b
herhangi bir sırayla tanıyabilir . Bu gibi durumlarda komut satırını ayrıştırmanın iyi bir yolu
:parse
IF "%~1"=="" GOTO endparse
IF "%~1"=="-a" REM do something
IF "%~1"=="-b" REM do something else
SHIFT
GOTO parse
:endparse
REM ready for action!
Bu şema deli olmadan oldukça karmaşık komut satırlarını ayrıştırmak için izin verir.
Toplu parametrelerin değiştirilmesi
Dosya adlarını temsil eden parametreler için kabuk, başka hiçbir şekilde erişilemeyen dosyalarla çalışmakla ilgili birçok işlevsellik sağlar. Bu işleve, ile başlayan yapılarla erişilir %~
.
Örneğin, bağımsız değişken olarak aktarılan dosyanın boyutunu almak için
ECHO %~z1
Toplu iş dosyasının başlatıldığı dizinin yolunu almak için (çok yararlı!)
ECHO %~dp0
CALL /?
Komut istemine yazarak bu özelliklerin tamamını görebilirsiniz .