BAT dosyalarının temelleri. Komut satırında ortam değişkenlerini kullanma
(komut) dosyaları, dizinlere giden mutlak yolları belirtmeden yapmanızı sağlar. Örneğin, sistem sürücüsünün harfini önceden bilmiyorsak, değişkeni her zaman kullanabiliriz. %sistem sürücüsü%, işletim sisteminin kurulu olduğu sürücü harfini döndürür. Ayrıca değişkenler, kodu optimize etmek için kullanılır - birçok kez tekrar eden bir parametreye (örneğin, bir kayıt defteri anahtarı) kısa bir değişken atanabilir ve kullanılabilir. Bu makale, değişkenlerle çalışmaya yönelik çeşitli tekniklerin yanı sıra yeni değişkenlerin nasıl değiştirilip yaratılacağı hakkında ayrıntılı bilgi verir. Şimdi sırayla her şey hakkında.
Ortam değişkenlerinin sınıflandırılması
Windows Yardım, iki tür ortam değişkeni arasında ayrım yapar: sistem ve yerel. Sistem değişkenleri tüm kullanıcılar için aynı değerleri döndürür. Örneğin, %sistem sürücüsü%- sistem sürücüsünün harfi ve tüm kullanıcılar için aynıdır. Ancak yerel değişkenlerin döndürdüğü değerler, oturum açan kullanıcıya göre değişir. Örneğin, %Kullanıcı profili% C:\Documents and Settings\CurrentUser döndürebilir; burada CurrentUser, kullanıcı hesabının adıdır.
İşletim sistemindeki hangi ortam değişkenlerinin sizin için uygun olduğunu ve bunlara şu anda hangi değerlerin atandığını öğrenmek için komut size yardımcı olacaktır. AYARLAMAK, parametre olmadan komut satırından başlatıldı ( başlat - çalıştır - cmd - ayarla). Bu makale çerçevesinde, çeşitli klasörlere (dizinlere) giden yolu gösteren değişkenlerle ilgileniyoruz. Bazıları hakkında biraz daha aşağıda:
%SYSTEMDRIVE%|System|Windows XP /2003 işletim sisteminin kök dizinini (yani sistem kök dizini) içeren sürücünün adını döndürür.
%SYSTEMROOT%, %WINDIR%|System|Windows /2003 işletim sisteminin kök dizininin konumunu döndürür
%PATH%|Sistem|Yürütülebilir dosyalar için arama yolunu belirtir.
%PROGRAMFILES%|System|Program yükleme dizinine (Program Dosyaları) giden yolu gösterir
%COMMONPROGRAMFILES%|System|Ortak program dizininin (Program Dosyaları\Ortak Dosyalar) yolunu gösterir.
%TEMP% ve %TMP%|Sistem ve Kullanıcı|Oturum açmış kullanıcıların erişebildiği uygulamalar tarafından kullanılan varsayılan geçici klasörleri döndürür. Bazı uygulamalar TEMP değişkenini, diğerleri ise TMP değişkenini gerektirir.
%USERPROFILE%|Yerel|Geçerli kullanıcı için profil konumunu döndürür.
%ALLUSERSPROFILE%|Yerel|"Tüm Kullanıcılar" profilinin konumunu döndürür.
%CD%|Local|Geçerli klasörün yolunu döndürür.
%APPDATA%|Yerel|Uygulama verileri için varsayılan konumu döndürür.
Toplu İş Dosyalarında Değişkenleri Kullanma
Basit bir örnekle başlayalım:
KMD/PARÇA:
DEL /F /Q "%AllUsersProfile%\Başlat Menüsü\Windows Activation.lnk" DEL /F /Q "%AllUsersProfile%\Başlat Menüsü\WindowsUpdate.lnk" DEL /F /Q "%systemroot%\system32\*.scr "
Bu örnekte, değişkeni kullanarak yukarıdaki kısayolları başlat menüsünden kaldırıyorum. %AllUsersProfile% değişkenini kullanarak Windows\system32 dizininden SCR uzantılı tüm dosyaların yanı sıra %SistemKökü%. DEL / F / Q yerine, anladığınız gibi, her şey olabilir: COPY copy komutundan, gerekirse tüm komut satırı parametreleriyle ihtiyacımız olan uygulamanın kurulumunu başlatma komutuna kadar.
Tüm komutlarda özellikle "alıntılar" kullandım - bu tesadüfi değil. Boşluk içeren yollar kullanıyorsanız, değişkenler de dahil olmak üzere yolun tamamı tırnak içine alınmalıdır. Değişkenin kendisi tırnak işaretleri içermese bile, sistem tarafından ayrıştırıldıktan sonra yolda boşluklar görünebilir (örneğin, %Program dosyaları% C:\Program Dosyalarında). Her durumda, tırnak işaretleri kullanmak daha iyidir - toplu iş dosyaları için iyi bir biçimdir.
Değişkenlerinizi nasıl ayarlayabilirsiniz?
Yukarıdaki örnek, halihazırda var olan ortam değişkenlerini kullanmıştır. Muhtemelen değişken adlarını çevreleyen yüzde sembollerini fark etmişsinizdir. Bu karakterler, komut satırında veya bir toplu iş dosyasında değişken değerlerin değiştirilmesine izin vermek için gereklidir. Yüzde sembolleri, Cmd.exe'nin karakter karakter karşılaştırma yapmak yerine değişkenlerin değerlerine başvurması gerektiğini belirtir. Aşağıda nasıl çalıştığını göreceksiniz. SET komutuyla değişkenlerinizi bir toplu iş dosyasında ayarlayabilirsiniz.
SET komutu
Aynı SET komutunu kullanarak değişkenlerinizi bir toplu iş dosyasında ayarlayabilirsiniz.
Bir değişken eklemek için komut satırına şunu girin:
kod:
değişken_adı=değer ayarla
Bir değişkeni görüntülemek için komut isteminde şunu yazın:
kod:
değişken_adı ayarla
Bir değişkeni kaldırmak için komut satırına şunu girin:
kod:
değişken_adı= ayarla
Örneğin,
kod:
SET mydir=D:\Files\Work
bir değişken tanımlar mydir, belirtilen klasöre giden yolu döndürür. Ekip hakkında daha fazla bilgiyi şuradan okuyabilirsiniz: ayarlamak/?.
Önemli Not: set komutu tarafından ayarlanan değişkenler, yalnızca ayarlandıkları komut oturumunun (aşağıya bakın) süresi boyunca geçerlidir.
Bu değişkenler, örneğin herhangi bir yol için oluşturulabilir, her bir özel durumda bir değişken atamak için bir algoritma ayarlamanız veya bulmanız, hazır örnekler kullanarak veya bunlara dayalı olarak kendinizinkini oluşturmanız yeterlidir. Kural olarak, bu tür değişkenler, geçerli oturumda bazı ifadeler kullanılarak toplu iş dosyaları tarafından oluşturulur.
Bir dosyada değişken atama örneği RunOnceEx.cmd ayarları kayıt defterine aktaran
KMD/PARÇA:
@echo kapalı SET KEY=HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx SET i=100 REG ADD %KEY% /V TITLE /D "Uygulamaları Kurma" /f REG ADD %KEY%\%i% /VE /D "WinRar 3.51" /f REG ADD %KEY%\%i% /V 1 /D "%systemdrive%\install\Software\WinRar.exe /s" /f REG ADD %KEY%\%i% /V 2 / D "REGEDIT /S %systemdrive%\install\Software\rar_set.reg /s" /f SET /A i+=1
Bu komut dosyasında, SET komutu iki değişken ayarlar - %Ben% Ve %ANAHTAR%. Lütfen yüzde sembolleri olmadan belirtildiklerine, ancak bunlara erişmek için %%'ye zaten ihtiyaç duyulduğuna dikkat edin. Değişken %ANAHTAR% kodu basitleştirmeye ve optimize etmeye yarar. Geçerli komut oturumu boyunca değişmeden kalır, bu da her seferinde koda bir kayıt defteri anahtarı ekleme ihtiyacını ortadan kaldırır. Kodda her oluştuğunda %ANAHTAR% HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx ile değiştirilecektir. Ve burada %Ben% kayıt defteri anahtarlarının sıralı numaralandırılması için kullanılır. Başlangıç değeri 100 olan değişken, her komut bloğundan sonra SET /A i+=1 komutuyla bir artırılarak 100, 101, 102 vb. Böylece çizgi
kod:
REG ADD %KEY%\%i% /V 1 /D "%systemdrive%\install\Software\WinRar.exe /s" /f
aslında böyle çalışır
kod:
REG ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx\100 /V 1 /D "C:\install\Software\WinRar.exe /s" /f
Dosya parçacığının sistem değişkenini de kullandığını unutmayın. %sistem sürücüsü%, sistem sürücü harfine karşılık gelir.
Bir CD'den uygulama yükleyen bir toplu iş dosyasında değişken atama örneği:
kod:
(C D E F G H I J K L M N O P Q R S T U V W X Y Z) içindeki %%i için, varsa yapın %%i:\WIN51 CDROM=%%i'yi ayarlayın: başlat /bekle "%CDROM%\INSTALL\DVDTools\NBRom\Nero.exe"
Bu örnek, listelenen tüm sürücüler için belirli bir dosyayı (WIN51) arar. Disklerden birinde bulunursa, ikincisine bir değişken atanır. %CD-ROM% ve ardından yazılım, oluşturulan değişken tarafından belirtilen yol kullanılarak kurulur.
Ortam Değişkenlerini Değiştirme ve Kendi Değişkenlerinizi Ekleme
Yukarıda bahsedildiği gibi, set komutu tarafından ayarlanan değişkenlerin etkisi geçerli komut oturumuyla sınırlıdır. Geçici bir değişkenden bir sistem veya kullanıcı değişkeni almak istiyorsanız, onu kayıt defterine kaydetmeniz gerekir. Bu da çeşitli şekillerde yapılabilir.
setenv yardımcı programı
Yardımcı program komut satırından çalışır (web sitesi, indirme). Yardımcı programla çalışmak çok basittir (setenv /?).
Kullanıcı ayarları|setenv -u değişken_adı değeri
Sistem ayarları|setenv -m değişken_adı değeri
Ayarlar Varsayılan Kullanıcı|setenv -d varname değeri
Geçerli kullanıcı oturumu ayarları|setenv -v varname değeri
Örneğin, kurulum aşamasında %temp% değişkenini almanız gerekiyorsa, bunu cmdlines.txt dosyasından yapabilirsiniz, örneğin:
kod:
:: Temp klasörü oluşturuluyor ve ayarlanıyor... md %systemdrive%\Temp setenv -u Temp %systemdrive%\Temp setenv -u Tmp %systemdrive%\Temp
Yardımcı program kullanışlıdır çünkü değişken ayarlandıktan sonra hemen kullanılabilir. Neredeyse hemen - bir sonraki takım oturumunda. Geçerli oturumda kullanmak için eski tanıdık set komutunu kullanabilirsiniz:
kod:
:: #EgOrus# oluşturuluyor var set EgOrus=D:\EgOrus setenv -u EgOrus %EgOrus%
Ayarları kayıt defterine aktarınİlk girişten sonra kayıt defterinde değişiklik yaparak giderseniz, değişkenler yalnızca yeniden başlatmanın veya kullanıcı oturumunun sona ermesinin ardından "çalışmaya" başlayacaktır. Elbette, otomatik kurulum işlemi sırasında, istediğiniz ayarları T-12'ye aktarabilir (Kayıt Tweaks makalesine bakın) ve bu sorunu aşabilirsiniz. Atanan değişkeni mevcut kullanıcı oturumunda kullanmayacaksanız, kayıt defterine almak da size uygun olabilir. REG dosyalarını içe aktarma sürecini tekrar açıklamayacağım, ancak belirli bir örnek kullanarak REG ADD komutunu ele alacağım.
Diyelim ki sistemde bir değişkene sahip olmakla ilgileniyorsunuz. %CD-ROM% kalıcı olarak ve CD'den uygulamaların kurulumu sırasında kurun. Yukarıdaki kodu takip ederek bir değişken tanımladıktan sonra onu sistem değişkenine atayın.
KMD/PARÇA:
(C D E F G H I J K L M N O P Q R S T U V W X Y Z) içinde %%i için, varsa yapın %%i:\WIN51 CDROM=%%i olarak ayarlayın: REG ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v cdrom /d %CDROM% / F
Bir WIN51 dosyası bulunduktan sonra, bulunduğu sürücüye yerel bir değişken atanır. %CD-ROM%, kayıt defterine aktarılarak hemen kalıcı bir sistem değişkeni olarak atanır. Bu yöntem, Oszone Sanja Alone konferansındaki konulardan birinde önerildi. Bu arada öğrendin. sistem değişkeni ayarlarının kayıt defterinde saklandığı yer. Kullanıcı değişkeni ayarları HKCU\Environment içinde saklanır. %PROGRAMFILES% ve %COMMONPROGRAMFILES% değişkenleri tarafından döndürülen yollar, HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion içindeki ProgramFilesDir ve CommonFilesDir ayarlarında görüntülenebilir, ancak burada değiştirilmemelidir. Program yükleme dizinleri (%SystemDrive%\Program Files dışında) bir yanıt dosyası aracılığıyla yapılandırılmalıdır.
Özet
Windows komut kabuğu (cmd.exe), sistemle çalışmak için çok güçlü bir araçtır. Toplu iş dosyaları makul miktarda görevi otomatikleştirebilir, bu nedenle genellikle Windows'u otomatik olarak yüklemek için kullanılırlar. Toplu iş dosyalarında değişkenlerin ustaca kullanılması, çok çeşitli sorunları çözmenize olanak tanır. Kabukla çalışmak daha verimli hale gelir ve aynı zamanda toplu iş dosyalarının kodunu basitleştirir. Değişken kullanımının diğer örneklerini sitenin veya forumun sayfalarında bulabilirsiniz. Bu makalede kullanılan tüm örnekler, kendilerine çok teşekkür edilen OsZone.ru forum katılımcılarının komut dosyalarından alınmıştır.
terminoloji
komut kabuğu kullanıcı ile işletim sistemi arasında doğrudan bağlantı sağlayan ayrı bir yazılım ürünüdür. Komut satırı metin kullanıcı arabirimi, metin tabanlı uygulamaların ve yardımcı programların çalıştığı bir ortam sağlar.
cmd.exe- girilen komutu sistemin anlayabileceği bir biçime çevirmek için Windows komut kabuğunun kullandığı bir komut yorumlayıcısı.
takım oturumu başlangıç olarak başlatılabilir cmd.exe veya bir toplu iş dosyası çalıştırarak. Başka bir deyişle, geçerli komut kabuğu oluşturulur. Buna göre, bu kabuktan çıkış (örneğin, toplu iş dosyasının sonu) komut oturumunu sonlandırır.
kullanıcı oturumu(kullanıcı oturumu), kullanıcı oturum açtığında (oturum açtığında) başlar ve kullanıcı oturumu kapattığında (oturum kapattığında) sona erer.
Toplu iş dosyalarının içinde, her biri RAM'de saklanan, kendi benzersiz adına sahip olan ve değeri bir dize olan ortam değişkenleri (veya ortam değişkenleri) ile çalışabilirsiniz. Standart ortam değişkenleri, işletim sistemi önyüklendiğinde otomatik olarak başlatılır. Bu tür değişkenler, örneğin, Windows dizininin konumunu belirten WINDIR, Windows geçici dosyalarını depolamak için dizinin yolunu belirten TEMP veya sistem yolunu (arama yolu) depolayan PATH'dir. sistemin yürütülebilir dosyaları veya paylaşılan dosyaları (dinamik kitaplıklar gibi) araması gereken dizinlerin listesi. SET komutunu kullanarak toplu iş dosyalarında kendi ortam değişkenlerinizi de bildirebilirsiniz.
Bir değişkenin değerini alma
Belirli bir ortam değişkeninin değerini almak için, değişken adını % karakterleri içine alın. Örneğin:
@ECHO KAPALI CLS REM MyVar değişkeni oluştur SET MyVar=Merhaba REM Değişkeni değiştir SET MyVar=%MyVar%! ECHO MyVar değişken değeri: %MyVar% REM MyVar değişkeni siliniyor SET MyVar= ECHO WinDir değişken değeri: %WinDir%
Böyle bir toplu iş dosyasını çalıştırdığınızda, ekranda satır görüntülenecektir.
MyVar değişken değeri: Merhaba! WinDir değişken değeri: C:\WINDOWS
Dize olarak değişken dönüşümleri
Toplu iş dosyalarındaki ortam değişkenlerini değiştirebilirsiniz. İlk olarak üzerlerine birleştirme (yapıştırma) işlemi yapılabilir. Bunu yapmak için SET komutunda yanına bağlanacak değişkenlerin değerlerini yazmanız yeterlidir. Örneğin,
SET A=Bir SET B=İki SET C=%A%%B%
Dosyada bu komutları çalıştırdıktan sonra C değişkeninin değeri "OneTwo" stringi olacaktır. Sadece bir karakter olarak algılanacağı için + işaretini birleştirme için kullanmamalısınız. Örneğin, aşağıdaki dosyayı çalıştırdıktan sonra
SET A=Bir SET B=İki SET C=A+B ECHO Değişken C=%C% SET D=%A%+%B% ECHO Değişken D=%D%
Ekranda iki satır görünecektir:
Değişken C=A+B Değişken D=Bir+İki
İkincisi, yapı kullanılarak bir ortam değişkeninden alt dizeler çıkarılabilir. %variable_name:~n1,n2% n1 sayısı, karşılık gelen ortam değişkeninin başından (n1 pozitifse) veya sonundan (n1 negatifse) ofsetini (atlanacak karakter sayısı) belirtir ve n2 sayısı, atlanacak karakter sayısıdır. (n2 pozitifse) veya değişkendeki seçilen alt diziye dahil edilmeyecek son karakterlerin sayısını (n2 negatifse) seçin. Yalnızca bir negatif -n seçeneği belirtilirse, son n karakter çıkarılacaktır. Örneğin, "09/21/2007" dizesi %DATE% değişkeninde depolanıyorsa (belirli bölgesel ayarlarla geçerli tarihin sembolik gösterimi), ardından aşağıdaki komutları yürüttükten sonra
AYAR dd1=%TARİH:~%0,2 AYAR dd2=%TARİH:~0,-% AYARLA mm=%TARİH:~-%7,2 AYARLA yyyy=%TARİH:~-4%
yeni değişkenler aşağıdaki değerlere sahip olacaktır: %dd1%=21, %dd2%=21, %mm%=09, %yyyy%=2007.
Üçüncüsü, yapıyı kullanarak alt dize değiştirme prosedürünü gerçekleştirebilirsiniz. %variable_name:s1=s2%(karşılık gelen ortam değişkeninde s1 alt dizisinin her geçtiği yerde s2 ile değiştirilen bir dizeyle sonuçlanır). Örneğin, komutları çalıştırdıktan sonra
a=123456 AYARLA b=%a:23=%99
b değişkeni "199456" dizesini depolar. s2 parametresi belirtilmezse, s1 alt dizisi çıkış dizisinden kaldırılacaktır, yani. komutu yürüttükten sonra
SET a=123456 SET b=%a:23=%
b değişkeni "1456" dizesini depolar.
Rakamlarla olduğu gibi değişkenlerle işlemler
Genişletilmiş komut işleme etkinleştirildiğinde (Windows XP'de varsayılandır), ortam değişkeni değerlerini sayı olarak ele alabilir ve bunlar üzerinde aritmetik işlem yapabilirsiniz. Bunu yapmak için /A tuşuyla SET komutunu kullanın. Komut satırı seçenekleri olarak verilen iki sayıyı toplayan ve elde edilen toplamı ekranda görüntüleyen örnek bir toplu iş dosyası add.bat aşağıda verilmiştir:
@ECHO OFF REM M Değişkeni toplamını saklayacaktır SET /A M=%1+%2 ECHO %1 ve %2'nin toplamı %M%'dir REM Değişken M'yi silin SET M=
Değişkenlerde Yerel Değişiklikler
SET komutuyla bir komut dosyasındaki ortam değişkenlerinde yaptığınız tüm değişiklikler, bu dosya çıktıktan sonra da devam eder, ancak bunlar yalnızca geçerli komut penceresinde etkili olur. Bir toplu iş dosyası içindeki ortam değişkenlerinde yapılan değişiklikleri yerelleştirmek, yani tüm değişkenlerin değerlerini otomatik olarak bu dosyanın çalıştırılmasından önceki haline geri yüklemek de mümkündür. Bunun için iki komut kullanılır: SETLOCAL ve ENDLOCAL. SETLOCAL komutu, yerel ortam değişkeni ayarları alanının başlangıcını tanımlar. Başka bir deyişle, SETLOCAL yürütüldükten sonra yapılan ortam değişiklikleri geçerli toplu iş dosyasına yerel olacaktır. Her SETLOCAL komutunun, ortam değişkenlerini önceki değerlerine geri yüklemek için karşılık gelen bir ENDLOCAL komutu olmalıdır. ENDLOCAL komutundan sonra yapılan ortam değişiklikleri artık mevcut toplu iş dosyasında yerel değildir; bu dosyanın yürütülmesi bittiğinde önceki değerleri geri yüklenmeyecektir.
0.00 (1 )
Genel yaklaşım.
Komut dosyaları, uzantıya sahip metin dosyalarıdır. yarasa veya komut, dizeleri komutlar veya yürütülebilir dosya adları olan. Bir toplu iş dosyasını yürüttüğünüzde, işletim sisteminin komut işlemcisi (genellikle komut yorumlayıcısı olarak adlandırılır) denetimi devralır ve toplu iş dosyasının satırlarını sırayla okur ve yorumlar. Windows9X için yapar komut.com, WinNT/2K/XP için - cmd.exe. Toplu iş dosyası satırları, komut işlemcisinin kendi komutlarını (FOR, GOTO, IF, vb.) veya yürütülebilir modüllerin adlarını (net.exe, regedit.exe, win.com, vb.) içerebilir. WinNT/2K/XP işletim sistemlerinde, komut satırını kullanarak komutların bileşimi hakkında kısa bir referans alabilirsiniz:
veya belirli bir komutta:
YARDIM Komut adı
Yardım metnini ekranda değil, bir dosyada görüntülemek için şunu kullanabilirsiniz: çıktı yönlendirme . Komut satırını kullanırken, standart giriş aygıtı klavyedir ve çıkış aygıtı ekrandır, ancak bu aygıtlar yeniden yönlendirme karakterleri kullanılarak yeniden eşlenebilir.
< - giriş yönlendirmesi
> - çıktı yeniden yönlendirme (veya > > - çıktı verileri dosyanın sonuna eklendiğinde mevcut bir dosyaya yönlendirme.)
Komut veri akışının çıktısını almak için
YARDIMhelp.txt dosyasına komut satırı şöyle olur:YARDIM > help.txt
GOTO komutunun yardımını goto.txt dosyasında görüntülemek için:
YARDIM GOTO > goto.txt
Ortam değişkenlerini kullanma.
Toplu iş dosyalarında şunları kullanabilirsiniz ve sıklıkla kullanmalısınız: Ortam Değişkenleri - Değerleri, komut veya toplu iş dosyasının yürütüldüğü ortamı karakterize eden değişkenler. Ortam değişkenlerinin değerleri, işletim sistemi önyüklemesi ve sistemde kullanıcı kaydı sırasında oluşturulur ve komut kullanılarak da ayarlanabilir.AYARLAMAKbiçimi şu şekildedir:
[değişken=[dize]] AYARLA
değişken Ortam değişkeninin adı.
astar Belirtilen değişkene atanacak bir karakter dizisi.
Örneğin, komut satırı
SET mynane=Vasya
Vasya değeriyle myname değişkenini ekleyecektir.
Programlarda ve toplu iş dosyalarında bir değişkenin değerini, adını yüzde işaretleri () içine alarak alabilirsiniz. %) . örneğin komut
zaman kelimesini ve komutu gösterecektir.
şimdiki zamanın değerini alan zaman değişkeninin değerini gösterecektir.
Ve komut satırı
YOLU AYARLA=C:myprog;%path%
PATH değişkeninin değeri tarafından açıklanan yürütülebilir programlar için arama yoluna C: myprog dizini ekler
SET komutunun parametresiz çalıştırılması, değişkenlerin mevcut değerlerinin ekranda şu şekilde görüntülenmesine neden olur:
NUMBER_OF_PROCESSORS=1 - işlemci sayısı
İşletim Sistemi=Windows_NT- İşletim Sistemi türü
Path=E:WINDOWSsystem32;E:WINDOWS;E:Program FilesFar - yürütülebilir dosyalar için arama yolu.
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH - yürütülebilir dosyalar için uzantılar.
PROCESSOR_ARCHITECTURE=x86 - işlemci mimarisi.
PROCESSOR_IDENTIFIER=x86 Aile 6 Model 8 Adım 1, AuthenticAMD - İşlemci Kimliği.
PROCESSOR_LEVEL=6 - işlemci düzeyi (model numarası).
PROCESSOR_REVISION=0801 - işlemci sürümü.
ProgramFiles=E:Program Files - "Program Files" klasörüne giden yol
PROMPT=$P$G - komut satırı bilgi istemi formatı $P - geçerli dizin yolu $G - ">" işareti.
SystemDrive=E: - sistem sürücü harfi.
SystemRoot=E:WINDOWS - Windows işletim sistemi dizini.
SET komutunda bazı değişkenlerin değeri verilmez. Bunlar, değerleri dinamik olarak değişen değişkenlerdir:
%CD% - Geçerli dizinin dize değerini alır.
%DATE% - Geçerli tarihin değerini kabul eder.
%TIME% - Geçerli saatin değerini kabul eder.
%RANDOM% - 1 -32767 aralığında rastgele bir ondalık değeri kabul eder.
%ERRORLEVEL% - ERRORLEVEL görev çıkış kodunun geçerli değerini alır
%CMDEXTVERSION% - Genişletilmiş komut işleme için CMD.EXE komut işlemcisinin sürümünün değerini alır.
%CMDCMDLINE% - Kabuğu çağıran satırın değerini alır.
Bir değişkenin değerini görüntülemek için komut satırını kullanabilirsiniz:
ECHO %değişken%
Toplu iş dosyası için giriş parametreleri.
Komut satırı parametrelerini bir toplu iş dosyasına geçirmek ve değerlerini toplu iş dosyasının kendi ifadelerinde kullanmak mümkündür.
yarasa dosyası< параметр1 > , < параметр2 >, ... < параметрN >
Toplu iş dosyasının kendisinde, ilk parametre bir değişken olarak mevcut olacaktır. %1 , ikinci - %2 ve benzeri. Toplu iş dosyasının adı bir değişken olarak mevcuttur %0 . Örneğin, görevi girilen parametrelerin değerlerini ekranda görüntülemek olacak bir toplu iş dosyası oluşturalım. Genellikle metni görüntülemek için kullanılan komut
EKO< текст >
Bununla birlikte, metin %1 ile değiştirilirse, ilk parametre, %2 - ikinci parametre ile döndürülür ve bu şekilde devam eder.
Aşağıdaki içeriğe sahip bir parm.bat dosyası oluşturun:
yankı İlk parametre=%1
yankı İkinci parametre=%2
yankı Üçüncü parametre = %3
ve aşağıdaki komutla başlatın:
parm.bat İLK saniye “iki kelime”
yürüttükten sonra, nasıl çalıştığını ve boşluklu parametrelerin çift tırnak içine alınması gerektiğini anlayacaksınız. Komut işlemcisi tarafından işlenen satırların ekranda görüntülenmemesi için komut kullanabilirsiniz.
EKO KAPALItoplu iş dosyasının ilk satırına yerleştirerek. Başına konulan kabuk tarafından yok sayılan bir toplu iş dosyasında bir satıra sahip olmakREM< пробел > . Bu şekilde, genellikle büyük toplu iş dosyalarında yararlı olan yorumları koyabilirsiniz:rem ECHO OFF, bir toplu iş dosyasının satırlarının içeriğini ekranda görüntüleme modunu kapatır
REM, yalnızca yürütmelerinin sonucunu yazdıracaktır.
yankı İlk parametre=%1
yankı İkinci parametre=%2
yankı Üçüncü parametre = %3
ECHO OFF'u @ECHO OFF ile değiştirmeyi deneyin - sonuç kendini gösterir. Çıkış modunu kapatan satır artık ekranda görüntülenmiyor.
Geçişler ve etiketler.
Toplu iş dosyalarında, belirli koşulların yerine getirilmesine bağlı olarak işlerinin mantığını değiştiren koşullu atlama komutlarını kullanabilirsiniz. Koşullu atlamaların nasıl kullanılacağını göstermek için, flash sürücüler olacak çıkarılabilir ortama önceden tanımlanmış bir sürücü harfi atamak olan bir toplu iş dosyası oluşturalım. Koşullar aşağıdaki gibidir - 2 flash sürücü vardır; bunlardan biri, hangi USB bağlantı noktasına bağlı olduklarından bağımsız olarak, gezginde X: sürücüsü olarak ve ikincisi Y: sürücüsü olarak görünmelidir. Gerçek disklerin şu şekilde bağlanabileceğini varsayacağız: F: veya G: Diskleri belirli bir ada sahip bir dosyanın varlığıyla tanımlayacağız (böyle bir dosyayı kök dizinde gizlemek ve bir şekilde alışılmadık bir şekilde adlandırmak daha iyidir):
Flashd1.let - ilk diskte
Flashd2.let - ikinci sırada
Onlar. toplu iş dosyasının görevi, çıkarılabilir disklerde var olup olmadığını kontrol etmektir. F: Ve G: Dosyalar Flashd1.let veya Flashd2.let ve hangisinin mevcut olduğuna bağlı olarak bir sürücü harfi atayın X: veya Y:
Diskte bir dosya aramak için şu komutu kullanın:
EĞER VARSA:IF EXIST dosya adı komutu
Bir komut olarak, kullanımı en kolay olanıdır.SUBSTBir sürücü adını bir dizine eşleyen bir.
ALT X:C:- içeriği C sürücüsünün kök dizini olacak bir sanal sürücü X: oluşturur:
Aşağıdaki satırlarla bir toplu iş dosyası setXY.bat oluşturun:
Böyle bir dosyayı çalıştırdıktan sonra, X: ve Y: disklerine sahip olacaksınız, ancak böyle bir dosyayı yeniden çalıştırırsanız, SUBST komutu bir hata mesajı verecektir - çünkü X: ve Y: diskleri zaten mevcuttur.
X: ve Y: sanal diskleri zaten oluşturulmuşsa (veya bağlamadan önce -d seçeneğiyle SUBST kullanarak bunları kaldırın), SUBST'nin yürütülmesini atlamanız önerilir. Toplu iş dosyasını şununla değiştirin:GİT- kontrolü bir toplu iş dosyasının bir satırına bir etiketle aktarın.
GOTO etiketi
Etiket ayrı bir satırda olmalı ve iki nokta üst üste ile başlamalıdır. Hata mesajı olmaması için toplu iş dosyamızda değişiklikler yapalım:
REM X yoksa: - SETX etiketine gidin
EĞER X YOKSA: SETX'E GİT
X mevcutsa REM: - Y'yi kontrol etmek için gidin:
VARSA G:flashd1.let SUBST X: G:
VARSA F:flashd1.let SUBST X: F:
Y: varsa REM - toplu iş dosyasını sonlandırın.
EĞER VARSA Y: ÇIKIŞA GİT
VARSA G:flashd2.let ALT Y: G:
VARSA F:flashd2.let ALT Y: F:
Bir toplu iş dosyasından REM çıktısı
SUBST hata mesajı kayboldu. Komutları yürütürken hata belirtileri, değişken analiz edilerek toplu iş dosyasında da izlenebilir.HATA DÜZEYİdeğeri çoğu programın yürütülmesi sırasında oluşan. ERRORLEVEL, programdan hatasız çıkıldıysa 0, hata oluştuysa 1'dir. Yürütülebilir programda sağlanmışlarsa başka değerler olabilir.
Toplu iş dosyasını toplu iş dosyası satırında komut olarak da kullanabilirsiniz. Ayrıca, çağıran toplu iş dosyasının yürütme noktasına geri dönüş ile iletim için komut kullanılır.ARAMA. Aşağıdaki içeriğe sahip bir toplu iş dosyası test.bat oluşturalım:
ECHO Çağrısı 1.bat
ECHO Dönüşü.
Ve komutu içeren 1.bat dosyasıDURAKLAT,herhangi bir tuşa basılana kadar bir toplu iş dosyasının yürütülmesini askıya alma.
test.bat çalıştırıldığında ekranda bir mesaj görüntülenecektir.
1.bat'ı arayın
ve duraklatma komutu ile kontrol 1.bat'a verilecektir. Klavyede bir tuşa başladıktan sonra, “ECHO Return” komut satırı. ve ekran görüntülenecek
CALL'u test.bat'tan kaldırırsanız, 1.bat dosyasından dönüş gerçekleştirilmeyecektir. Bu arada, kontrolü bir toplu iş dosyasına aktarmayı kullanarak döngüyü düzenleyebilirsiniz. test.bat dosyasının sonuna aşağıdaki satırı eklemeyi deneyin:
CTRL-Break kombinasyonuna basarak toplu iş dosyası döngüsünden çıkabilirsiniz. Bir toplu iş dosyası içinde bir prosedürü çağırmak için CALL komutunu kullanmak mümkündür. Bu durumda, bağımsız değişken olarak harici dosyanın adı değil, etiket kullanılır:
....
çağrı:proc1
....
:proc1
....
çıkış
....
Dosyalar oluşturma.
Windows'un dosya oluşturmak için özel bir komutu yoktur, ancak birkaç yolla kolayca önlenebilir:
Konsoldan dosyaya kopyala
KOPYALAMA myfile.txt
Bu komut yürütüldüğünde, klavyeden (CON cihazı) gelen veriler myfile.txt dosyasına yazılacaktır. F6 tuşuna veya CTRL-Z kombinasyonuna basmak çıktıyı tamamlayacaktır.
Çıkış Yönlendirmesi
ECHO 1 > dosyam.txt
Bu komutu yürütürken, “1” karakterini içeren myfile.txt dosyası oluşturulacaktır.
Giriş ve çıkış yönlendirme kombinasyonu:
KOPYALAMA > dosyam.txt< xyz
Bu komut yürütülürken, ilk durumda olduğu gibi, konsoldan bir dosyaya kopyalama kullanılır, ancak klavyeden veri yerine, var olmayan bir cihazdan xyz girişi kullanılır. Sistem, böyle bir aygıtın mevcut olmadığını belirten bir mesaj görüntüler, ancak boş bir myfile.txt dosyası başarıyla oluşturulur.
Çok basit bir seçenek, adlı hayali bir cihazdan kopyalamaktır. hükümsüz dosyalamak.
boş dosyam.txt dosyasını kopyala
Sık sık boş dosyalar oluşturmanız gerekiyorsa, kendi toplu iş dosyanızı (örneğin, newfile.bat veya daha iyisi nf.bat) hazırlayabilir ve oluşturulacak dosyanın adını başlangıçta bir parametre olarak iletebilirsiniz.
Dosya içeriği:
Bu toplu iş dosyasını sistem dizininize yerleştirin (C:windowssystem32 veya PATH arama yollarınızdaki her neyse).
Komut satırı:
yeni dosya.bat dosyam.txt
Veya
nf.bat dosyam.txt
Veya
nf dosyam.txt
işte senin takımın nf komut satırında boş bir dosya oluşturmak için.
Aynı sürücü harfini çıkarılabilir bir sürücüye atama.
Görev, hangi bilgisayarda kullanıldığına ve nasıl bağlandığına bakılmaksızın, çıkarılabilir bir USB sürücüsünün (flash sürücü) her zaman aynı harf altında bulunmasını sağlamaktır. Bunu çözmek için yukarıda bahsedilen SUBST komutunu kullanıyoruz. Çıkarılabilir disk için istenen harfi seçelim, örneğin - X. Toplu iş dosyasının başlatıldığı diskin adı, %~d0 değişkeni olarak mevcuttur. Aşağıdaki içeriğe sahip bir toplu iş dosyası oluşturun: @Eko kapalı
alt X: %~d0
bunun anlamı - toplu iş dosyasının başlatıldığı fiziksel diskle ilişkili bir X: sanal diski oluşturmak.
%0 değişkeninin ikame değerleri hakkında daha fazla bilgi için aşağıdaki toplu iş dosyasına bakın:
@Eko kapalı
EKO İŞLEME DOSYASI - %0
ECHO Toplu dosya oluşturma/değiştirme tarihi/saati - %~t0
ECHO Batch dosyası yolu - "%~f0"
ECHO Toplu Dosya Diski - %~d0
ECHO Komut dosya dizini - "%~p0"
ECHO Toplu dosya adı - %~n0
ECHO Batch dosya uzantısı - %~x0
ECHO Kısa ad ve uzantı - %~s0
ECHO Batch dosyası öznitelikleri - %~a0
ECHO Toplu dosya boyutu - %~z0
Tarih ve saate göre arşiv nesillerinin oluşturulması.
Aşağıdaki sorunu çözelim - C: Program FilesFAR dizininde bulunan bir dosya arşivi oluşturmanız gerekir. Arşiv dosyasının adı geçerli saatten (saat.dakika.saniye - HH.MM.SS.rar) oluşmalı ve adı geçerli tarihten (gün) oluşan yeni bir dizine yerleştirilmelidir. .ay.yıl - GG.AA.YYYY). Arşivleme için RAR arşivleyicisini kullanacağız. Bir arşiv oluşturmak için formatı başlat:
RAR a-r< путь и имя архива > < Путь и имя архивируемых данных >
A- arşiv oluşturma komutu.
-R- alt dizinlerin arşivlenmesini belirleyen anahtar (çünkü kaynak klasörde alt dizinler vardır).
Bu nedenle, sorunu çözmek için RAR için doğru adlar ve yollar oluşturmanız gerekir. Neden aşağıdaki faktörleri kullanmalısınız:
Varsayılan bölgesel ayarlarla %DATE% değişkeninden elde edilen tarih şöyle görünür: VDATE=%tarih ayarla:~3% C: sürücüsünde, adı = VDATE değişkeninden geçerli tarih olan bir dizin oluşturun: MD C:\%VDATE% %TIME% değişkeninden alınan süre: Arşivleyiciyi başlatalım: Artık içerikle bir toplu iş dosyası oluşturabilirsiniz: VDATE=%tarih ayarla:~3% Böyle bir toplu iş dosyası, bir kullanıcı etki alanında oturum açtığında veya belirli bir zamanda zamanlayıcıyı kullanarak otomatik yükleme yoluyla veya bir betiğin parçası olarak yürütülebilir ve her zaman kritik verilerin zaman sıralı arşivlerine sahip olursunuz.
Bu toplu iş dosyası, Win2K/XP kullanıcılarının "Belgelerim" klasörünün içeriğinin arşivlerini oluşturur ve bunları dizinlere yerleştirir. |
Ortam değişkenlerini ayarlar, kaldırır ve görüntüler. Parametreler olmadan çağrılan komut ayarlamak ayarlanan ortam değişkenlerini ve değerlerini listeler.
Sözdizimi
ayarlamak [[/A [ifade]] [/P [değişken = ]] astar]
Seçenekler
/a Parametrenin astar hesaplanan sayısal bir ifadedir. /p bir değer belirtir değişken giriş hattı değişken Değerini ayarlamak veya değiştirmek istediğiniz değişkenin adını belirtir. string Belirtilen değişken için bir string değeri belirtir. /? Yardımı komut satırında görüntüler.notlar
- Komut kullanımı ayarlamak kurtarma konsolunda
Takım ayarlamak kurtarma konsolunda diğer seçenekler mevcuttur.
- Özel karakterler kullanma
Semboller<, >, |, &, ^ kabuk özel karakterleridir, bir parametrede karakterler kullanılırken bunların önüne bir kontrol karakteri (^) gelmeli veya tırnak işaretleri içine alınmalıdır. astar(Örneğin, " içerik_dizesi & sembol" ). Özel karakterler içeren bir dizeyi alıntılarken, tırnak işaretleri ortam değişkeninin değerinin bir parçası olarak kabul edilir.
- Ortam değişkenlerini kullanma
Ortam değişkenleri, belirli toplu iş dosyalarının ve programların çalışmasını denetlemek ve Windows XP ile MS-DOS alt sisteminin çalışmasını denetlemek için kullanılır. Takım ayarlamak ortam değişkenlerini ayarlamak için genellikle Autoexec.nt dosyasında kullanılır.
- Geçerli ortam ayarlarını görüntüle
takım ne zaman ayarlamak parametresiz çağrıldığında mevcut ayarlar görüntülenecektir. Tipik olarak bu ayarlar, diskteki programları bulmak için kullanılan COMSPEC ve PATH değişkenlerini içerir. Windows tarafından kullanılan diğer iki ortam değişkeni PROMPT ve DIRCMD'dir.
- parametreleri kullanma
Bir değişken ve bir string için değerler belirlenirken ortama değişkenin değeri eklenir ve string o değişkene atanır. Değişken zaten varsa, yeni değer eski değerin yerini alır.
eğer bir takımda ayarlamak yalnızca değişken adı ve eşittir işareti (değer yok) belirtilirse, ortam değişkeniyle artık herhangi bir değer eşlenmeyecektir; bu, ortam değişkeninin silinmesine eşdeğerdir.
- Kullanım /A
Aşağıdaki tablo, seçeneği destekleyen işleçleri listeler /A, azalan sırayla.
Mantıksal operatörler (&& ||) veya modulo operatörü (%) kullanırken, dize ifadesini tırnak işaretleri içine alın. İfadedeki sayısal olmayan dizeler, işlenmeden önce değerleri sayılara dönüştürülmüş ortam değişkeni adları olarak kabul edilir. Geçerli ortamda tanımlı olmayan bir ortam değişkeni adı belirtilirse, sıfıra ayarlanır ve değeri almak için % kullanılmadan ortam değişkeninin değerleri üzerinde aritmetik işlem yapılmasına izin verilir.
komutu yürütürken /a ayarla komut dosyası dışındaki komut satırından, ifadenin son değeri görüntülenir.
Sayısal değerler, onaltılık sayılar için 0x ve sekizlik sayılar için 0 öneki olan sayılar dışında ondalık sayılardır. Böylece, 0x12, 18 ve 022 ile aynıdır. Sekizli gösterim biraz dikkat gerektirir. Örneğin, 08 ve 09 geçersizdir çünkü 8 ve 9 sekizli basamak değildir.
- Kullanım /P
Bir komut satırı eklemeniz gerekmediğinde kullanılır.
- Gecikmeli ortam değişkeni genişletme desteği
Gecikmeli ortam değişkeni genişletme desteği eklendi. Bu destek varsayılan olarak devre dışıdır, komutla etkinleştirebilir veya devre dışı bırakabilirsiniz. komut / v.
- Komut uzantılarıyla çalışma
Komut uzantıları etkin (varsayılan olarak ayarlanmıştır) ve komut yürütme ile ayarlamak değer yoksa tüm geçerli ortam değişkenleri görüntülenir. Komut yürütülürse ayarlamak bir değerle, o değere karşılık gelen değişkenler görüntülenir.
- Komut kullanımı ayarlamak toplu iş dosyalarında
Toplu iş dosyaları oluştururken şu komutu kullanın: ayarlamak değişkenler oluşturmak ve bunları sayısal değişkenler olarak kullanmak için %0 önce %9 . değişkenlerini de kullanabilirsiniz. %0 önce %9 bir komut için girdi olarak ayarlamak.
- Komut Değişkenlerine Erişim ayarlamak toplu programlardan
Toplu program içinden bir değişkene erişirken, değişken adı yüzde işaretleri (%) içine alınmalıdır. Örneğin, bir toplu programda bir BAUD değişkeni oluşturulursa, adı kullanılarak bir değiştirme parametresi onunla ilişkilendirilebilir. %baud% komut satırında.
örnekler
TEST^1 adlı bir ortam değişkeni ayarlamak için şu komutu girin:
testVar=test^^1'i ayarla
TEST&1 adlı bir ortam değişkeni ayarlamak için şu komutu girin:
testVar=test^&1'i ayarla
Komut değişken değeri ayarlamak eşittir işaretini (=) takip eden her şeyi tanımlar. girerken:
testVar="test^1" ayarla
Sonuç aşağıdaki gibi olacaktır:
testVar="deneme^1"
INCLUDE ortam değişkenini ilişkili bir C:\Inc dizisine (C sürücüsündeki Inc dizini) sahip olacak şekilde ayarlamak için aşağıdaki komutu kullanabilirsiniz:
dahil etmeyi ayarla=c:\inc
C:\Inc dizisi, INCLUDE adını yüzde işaretleri (%) içine alarak toplu iş dosyalarında kullanılabilir. Örneğin, bir toplu iş dosyasında, INCLUDE ortam değişkeni tarafından işaret edilen dizinin içeriğini listelemek için aşağıdaki komutu kullanabilirsiniz:
Komut satırını yürütürken %katmak% C:\Inc dizesiyle değiştirilecektir.
komutunu da kullanabilirsiniz. ayarlamak PATH ortam değişkenine yeni bir dizin ekleyen bir toplu programda. Örneğin:
@Eko kapalı
rem ADDPATH.BAT yeni bir dizin ekler
yol ortam değişkenine rem.
setpath=%1;%yol%
ayarlamak
Komut uzantıları etkin (varsayılan olarak ayarlanmıştır) ve komut yürütme ile ayarlamak bir değerle, değere karşılık gelen tüm ortam değişkenleri görüntülenir. Örneğin, komut satırına yazarken: ayarlamak P, sonuç şöyle olacaktır:
Yol=C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH
İŞLEMCİ_ARCHITECTURE=x86
PROCESSOR_IDENTIFIER=x86 Aile 6 Model 8 Adım 1, OrijinalIntel
İŞLEMCİ_DÜZEYİ=6
İŞLEMCİ_REVİZYON=0801
ProgramFiles=C:\Program Dosyaları
İSTEM=$P$G
Set komutuyla çalışmanın bazı püf noktaları ve özellikleri bölümünde bulunabilir. Aritmetik veri işleme.
Soru, tartışma, yorum, öneri vb. için kullanabilirsiniz. forum bölümü bu site (kayıt gereklidir).