Toplu iş parametreleri kullanarak DOS komut satırında dosyaları
Windows, nasıl bağımsız bir toplu iş dosyasını çalıştırmak zaman geçti erişimi musunuz?
Örneğin, diyelim ki bir program hello.bat
adında bir arkadaşım var. DOS komut satırına hello -a
girdiğimde, benim programımı -a
bir argüman olarak kabul edildi bu haber vereceğim?
CEVAP
Diğerleri zaten söylediğim gibi, parametreler komut satırından geçirilen gösterim %1
7 ** ile toplu iş dosyaları erişilebilir. Ayrıca kullanabileceğiniz diğer iki belirteçleri vardır:
%0
çalıştırılabilir (toplu iş dosyası) komut satırında belirtilen adı.%*
tüm parametreleri komut satırında belirtilen-- bu öne eğer başka bir program parametreleri istiyorsanız bu çok yararlıdır.
Ayrıca önemli teknikler çok farkında olmak parametrelerine erişim için sadece ek olarak vardır.
Bir parametre olmadığını kontrol geçildi
Bu ise hiçbir bağımsız değişkene geçmiş olsaydı eğer gerçek olan IF "%~1"==""
, gibi yapıları ile yapılır. Not tilde karakteri neden olan herhangi bir tırnak çevresi için kaldırıldı değeri %1
; olmadan bir tilde alacaksın beklenmeyen sonuçlar varsa bu değeri içeren çift tırnak da dahil olmak üzere mümkün sözdizimi hatası.
İşleme 9'dan fazla bağımsız değişken (ya da sadece yaşamı kolaylaştırır)
Eğer 9'dan fazla bağımsız değişken erişmek gerekirse komutu SHIFT
kullanmak zorunda. Bu %0
%1
, %1
değerini %2
gibi değer alır, böylece komut vardiya tüm değişkenlerin değerleri bir yer. %9
SHIFT
(daha fazla seçenek için komut SHIFT /?
enter) çağırmadan önce herhangi bir değişken mevcut değildi onuncu argüman ise, (varsa) değerini alır.
SHIFT
kolayca belirli bir düzen sunulmuştur gerektirmeden parametreleri işlemek istediğinizde de yararlıdır. Örneğin, bir komut dosyası bayrak -a
ve herhangi bir sırada -b
tanıyabilir. Bu gibi durumlarda komut satırı ayrıştırmak için iyi bir yoldur
: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 düzeni deliye olmadan oldukça karmaşık komut satırı ayrıştırmak için izin verir.
Toplu parametrelerin değişimi
Dosya adları temsil eden parametreleri için kabuk işlevi başka bir şekilde erişilebilir değil, dosyalarla çalışmak ile ilgili bir sürü sağlar. Bu işlevsellik %~
ile başlayan yapıları ile erişilebilir.
Örneğin, dosya boyutunu argüman olarak almak için kullanın
ECHO %~z1
Toplu iş dosyasından başlatılan olduğu dizinin yolunu (çok yararlı!) kullanabilirsiniz
ECHO %~dp0
Komut CALL /?
yazarak bu yetenekleri görebilirsiniz.
Görüntü için arsa Matplotlib örneğin, ...
Nasıl bir toplu iş dosyası komut satır...
Nasıl bir dosya adı kullanarak uygun b...
Git tüm dosyaları tek bir komut kullan...
DOS kullanarak "Başlat" para...