• 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:

    Değişken|Tür|Açıklama
    %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çinYARDIMhelp.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:

  • Toplu iş dosyalarında, geçerli tarihe ve geçerli saate - %DATE% ve %TIME% değişkenlerine erişebilirsiniz.
  • SET komutunu kullanarak toplu iş dosyalarında geçici değişkenler oluşturabilirsiniz.
  • Geçici değişkenlerin değeri, aynı SET komutu kullanılarak parçaları atlanarak ve/veya değiştirilerek %DATE% ve %TIME% temelinde oluşturulabilir.

    Varsayılan bölgesel ayarlarla %DATE% değişkeninden elde edilen tarih şöyle görünür:
    01/21/2005 Pzt- Haftanın günü (2 karakter) -Boşluk-tarih (10 karakter)
    Örneğin MD komutu ile bir dizin oluşturalım.< имя каталога >.
    Bellekte geçici bir VDATE değişkeni oluşturun ve ilk 3 karakter olmadan DATE ortam değişkeninin değerini atayın - 20.01.2005:

    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%
    Bu komutu çalıştırdıktan sonra, C sürücüsünde 01/20/2005 adlı bir dizin oluşturulacak:

    %TIME% değişkeninden alınan süre:
    14:30:59.93 - Saatler, dakikalar, saniyeler, saniyenin yüzde biri.
    Yüzde bir - bu, arşiv dosyası adına belki de gereksizdir. Geçici bir değişken VTIME oluşturun ve son 3 karakter olmadan şimdiki zamanı atayın
    VTIME=%zamanı ayarla:~0,-3%
    Şimdi VTIME = 14:30:59, ancak ":" karakteri dosya adında kullanılamaz, bu yüzden onu bir nokta ile değiştireceğiz.
    set VTIME=%VTIME::=.%
    VTIME değişkeni 14.30.59 değerini alacaktır. Bir dosya adı için bunu yapacaktır.

    Arşivleyiciyi başlatalım:

    Artık içerikle bir toplu iş dosyası oluşturabilirsiniz:

    VDATE=%tarih ayarla:~3%
    md c:\%VDATE%
    VTIME=%zamanı ayarla:~0,-3%
    set VTIME=%VTIME::=.%
    rar a -r C:\%VDATE%\%VTIME%.rar "C:Program filesfar*.*"

    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.

    Kullanıcı profili değişkenlerini kullanarak arşivler oluşturun.

    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.
    C:ARHIVBelgelerimKullanıcı AdıTarihSaat

    USERPROFILE, USERNAME, WINDIR değişkenleri kullanıldığından bu toplu iş dosyası WIN9X'te çalışmayacaktır. (Yine de dilerseniz bu değişkenlerin değerlerini ayarlamak için autoexec.bat içine komutlar ekleyebilir ve çok az değişiklikle veya hiç değişiklik yapmadan tek kullanıcılı sürümde kullanabilirsiniz). Toplu iş dosyasının içeriği yorumlanır ve önceki örneği anladıktan sonra çok fazla soruna neden olmamalıdır:

    @Eko kapalı
    rem FROM değişkeni ayarlandı - arşivleme için verilerin nereden alınacağı
    FROM=%USERPROFILE%Belgelerim ayarla
    rem Değişken TO ayarlandı - arşivlerin nereye yerleştirileceği
    TO=C:arhivMy Documents\%USERNAME% olarak ayarlayın
    rem Bir TO dizini oluşturun
    md "%TO%"
    rem Geçerli tarihten itibaren alt dizinin adını oluşturur
    geçerli tarihi Win2K için varsayılan ayarlarda güncelle - Pzt 04/25/2005
    geçerli tarihi WinXP için varsayılan ayarlarda güncelle - 04/25/2005
    rem Geçerli tarihten itibaren, alt dizinin adını oluşturacağız - 25.04
    rem WinXP için varsayılan Windir C:WINDOWS ve Win2K için C:WINNT'dir.
    IF /I %Windir% == C:WINNT GOTO Win2K
    vdate=%DATE:~0,-5% ayarla
    GOTO SetDosyaAdı
    : Win2K
    vdate=%DATE:~3,-5% ayarla
    rem Şimdiki zamandan arşiv dosyasının adını oluşturalım - 12:00:00.99
    rem , saniyenin yüzde birini atıyoruz ve karakteri: bir karakterle değiştiriyoruz. Sonuç - 12.00.00
    :DosyaAdı Ayarla
    vtime ayarla=%TIME:~0,-3%
    vtime=%vtime::=.% ayarla
    rem Arşiv dosyası için bir alt dizin oluşturun
    md "%TO%\%VDATE%"
    rem Arşivleme komutu. Alt klasörlerle arşivleme için -r anahtarı gereklidir
    ARJ arşivleyici için rem seçeneği: arj a -r "%TO%\%VDATE%\%VTIME%.arj" "%FROM%*.*"
    rem RAR arşivleyiciyi kullanırken:
    rar a -r "%TO%\%VDATE%\%VTIME%.rar" "%FROM%*.*"

    Komutların programa göre yürütülmesi.

    WIN2K/XP'de bir komut satırı yardımcı programı vardırAT,yerel veya uzak bir bilgisayarda belirli bir zamanda bir komut veya toplu iş dosyası yürütmenize izin verir. AT komutunu kullanmak için Görev Zamanlayıcı hizmeti çalışıyor olmalıdır (genellikle sistem kurulduğunda varsayılan olarak başlatılır).

    AT [\bilgisayaradı] [ [kod] | /SİLMEK]

    [\bilgisayaradı] saatinde

    [ /HER:gün[,...] | /SONRAKİ:gün[,...]] "komut"

    \bilgisayar adı Uzak bilgisayarın adı. Bu parametre atlanırsa,

    yerel bilgisayarı kullanarak.

    kod Zamanlanan görevin sıra numarası. Önceden planlanmış bir görevi tuşunu kullanarak iptal etmeniz gerekirse belirtilir. /silmek.

    /silmek Zamanlanmış bir görevi iptal edin. Görev kodu atlanırsa,

    belirtilen süre için planlanan tüm görevleri iptal eder.

    bilgisayar.

    /Evet Tümünü iptal ederken onay istemini iptal et

    zamanlanmış görevler

    zaman Komut başlangıç ​​zamanı.

    /etkileşimli Görevin kullanıcı ile etkileşimine izin ver,

    görev çalışırken bilgisayarda çalışıyor. Bu anahtar olmadan başlatılan görevler, bilgisayar kullanıcısı tarafından görülmez.

    /Her gün[,...] Görev, haftanın belirtilen günlerinde başlatılır veya

    ay. Tarih atlanırsa, geçerli gün kullanılır

    /ertesi gün[,...] Görev, haftanın belirtilen bir sonraki gününde çalışacak

    (örneğin önümüzdeki Perşembe). Tarih atlanırsa,

    ayın geçerli günü kullanılır.

    "takım" Komut veya toplu iş dosyası adı.

    Kullanım örnekleri:

    "Çalar saatin" bir benzeri, - geçerli veya belirtilen kullanıcıya bir işlem gerçekleştirme ihtiyacını hatırlatan metin içeren açılır pencereler. Bir kullanıcıya mesaj göndermek için yardımcı programı kullanınNET.EXE

    13:50 net.exe gönder * Kahve saati

    17:50'DE net.exe eve gitmek için Kullanıcı Zamanını gönderir

    AT \SERVER 13:45 net.exe gönderme Sunucuyu yeniden başlatmanız gerekiyor

    Zamanlanmış görevlerin listesini görüntüleme:

    Halihazırda planlanmış görevleri silme:

    3'TE /SİL- görev numarası 3'ü sil

    AT /SİL /EVET- tüm görevleri sil

    "Denetim Masası" - "Zamanlanmış Görevler", komut tarafından oluşturulan görevleri görüntülemenizi, değiştirmenizi ve silmenizi sağlar AT görevler.

    Sistem hizmetlerini durdurun ve başlatın.

    Win2K/XP hizmetlerini komut satırından durdurmak ve başlatmak için NET.EXE komutunu kullanın.

    NET.EXE DURDUR< имя службы >

    NET.EXE BAŞLAT< имя службы >

    Kısa ad veya tam ad kullanmak mümkündür ("Dnscache" kısa addır, "DNS istemcisi" tam hizmet adıdır). Boşluk içeren hizmet adı çift tırnak içine alınır. "DNS istemcisi" hizmetini yeniden başlatma örneği

    net durdurma "DNS istemcisi"

    net başlangıç ​​"DNS istemcisi"

    Kısa bir ad kullanarak aynı:

    net durdurma dnscache

    net başlangıç ​​dnscache

    Hizmetin tam adı "Hizmetler"den kopyalanabilir -< Имя службы >- "Özellikler" - "Görünen ad"

    Hizmetleri yönetmek için, PsTools yardımcı programlarından PsService.exe yardımcı programını kullanmak çok daha uygundur Yardımcı program kurulum gerektirmez ve herhangi bir Windows işletim sisteminde çalışır. Hizmeti başlatıp durdurmanın yanı sıra, yerel ağ bilgisayarlarında belirli bir hizmeti aramanıza, hizmetin durumunu ve yapılandırmasını sorgulamanıza, başlatma türünü değiştirmenize, hizmeti duraklatmanıza, devam ettirmenize, yeniden başlatmanıza olanak tanır.

    Windows XP'de sistem hizmetleriyle çalışmak için yardımcı programı kullanabilirsiniz. sc.exe, yalnızca hizmeti durdurmaya / başlatmaya değil, aynı zamanda durumunu, başlatma ve çalışma parametrelerini sorgulamaya, yapılandırmayı değiştirmeye ve ayrıca yalnızca sistem hizmetleriyle değil, sürücülerle de çalışmaya izin verir. Haklarınız varsa, hizmetleri yalnızca yerel değil, uzak bir makinede de yönetmek mümkündür. Örnekler:
    sc.exe DNSCache'i durdurur- yerel bilgisayarda DNSCache hizmetini durdurun.
    sc \192.168.0.1 sorgu DNSCache- 192.168.0.1 IP adresine sahip bilgisayarda DNSCache hizmetinin durumunu sorgulama
    sc \COMP DNSCache'i başlat COMP bilgisayarında DNSCache hizmetini başlat
    Aşağıdakini yazarak yardımcı programın nasıl kullanılacağına dair bir ipucu alabilirsiniz:
    sc /?

    ERRORLEVEL değişkeninin değerinin ekrana yazdırılması.

    Bu basit toplu iş dosyası, belirli bir komut satırında ERRORLEVEL değişkeninin değerini görüntüler. İlk olarak, en az bir giriş parametresinin varlığı kontrol edilir ve hiçbir şey belirtilmezse bir hata mesajı verilir ve çıkış gerçekleşir. En az bir parametre belirtilirse, giriş parametreleri komut satırı olarak kabul edilir ve yürütülür ve ECHO komutu kullanılarak ERRORLEVEL değeri döndürülür. Dosyanın içeriği (adını echoEL.bat koydum):

    @Eko kapalı
    eğer "%1" NEQ "" ise PARMOK'A GİT
    ECHO ERRORLEVEL'i tanımlamak için komut satırını ayarlamanız gerekiyor
    çıkış
    :PARMOK
    %1 %2 %3 %4 %5 %6 %7 %8
    ECHO %1 %2 %3 %4 %5 %6 %7 %8 ERRORLEVEL=%ERRORLEVEL%

    Başlatma örnekleri:
    echoEL.bat NET PAYLAŞIMI
    - NET SHARE komutu yürütülecek (paylaşılan ağ kaynaklarının bir listesini verin) ve ERRORLEVEL kodu verilecek
    echoEL.bat NET PAYLAŞIMI X"="C:
    - NET SHARE X:=C: komutu yürütülecektir (X adıyla ve C: sürücüsünün kök dizinine giden yolla paylaşılan bir ağ kaynağı oluşturun) = sembolünün çift tırnak içine alındığına dikkat edin.
    Yukarıda listelenen seçenekler doğru komut satırını ayarlar. Ancak NET.EXE'ye yanlış parametreyi veya hiç var olmayan bir komutu vermeyi deneyin; ERRORLEVEL'in hangi değeri aldığını göreceksiniz. VE komut satırının aslında ÇALIŞIYOR olduğunu ve örneğin "echoEL.bat format A:" seçeneğinin A: sürücüsündeki disketi biçimlendirmeye başlayacağını UNUTMAYIN.

    kullanıcı ile diyalog

    Kullanıcıyla diyalog kurmak için şu komutu kullanabilirsiniz:
    AYARLA /P< имя переменной >=< текст >
    yürütüldüğünde, ekranda bir metin mesajı görüntülenir< текст >ve yanıt metninin girilmesini beklemek. Örnek - bir şifre talebi yürüteceğiz ve değerini "pset" değişkenine atayacağız:

    Set /p pset="Şifreyi girin - "
    yankı Parola - %pset%

    Bu yöntemin dezavantajı, bir kullanıcı yanıtı olmadan bir toplu iş dosyasının yürütülmesine devam etmenin imkansızlığıdır, bu nedenle, çoğu zaman ayar yerine üçüncü taraf programları kullanılır. Onlardan biri - SEÇİM.COMİndir (1.7kb) .
    SEÇİM, kullanıcıya bir metin mesajı verir ve verilen yanıt seçeneklerinden birinin seçilmesini bekler (klavyedeki tuş vuruşları). Seçim sonuçlarına göre, değeri seçimin sıra numarasına eşit olan ERRORLEVEL değişkeni oluşturulur. Varsayılan olarak iki seçenek vardır - Y veya N. Yanıt Y ise ERRORLEVEL=1, N ise ERRORLEVEL=2'dir. 2'den fazla seçim seçeneği kullanabilirsiniz ve kullanıcı belirli bir süre hiçbir tuşa basmadığında varsayılan seçimi ayarlamak mümkündür. Komut satırı formatı:

    SEÇİM seçenekleri] c,nn]
    /C[:]seçenekler - geçerli seçenekleri tanımlar. Ayarlanmamışsa - YN
    /N - seçenekleri gösterme.
    /S - küçük ve büyük harfler farklıdır.
    /T[:]c,nn - Varsayılan seçim "nn" saniyeden sonra "c"dir
    text - Bir sorgu olarak metin çıktısı dizisi

    CHOICE kullanımını gösteren bir toplu iş dosyası oluşturalım. "1", "2", 3" ve "0" tuşlarına basıldığında yanıt verir. "0"a basıldığında tamamlanır ve diğerlerine basıldığında - kullanıcıya bir mesaj verilir. 10 saniye içinde hiçbir şeye basılmazsa - tamamlanır.

    @EKO KAPALI
    :SEÇENEK
    SEÇİM /C:1230 /T:0,10 Seçiminiz
    IF %ERRORLEVEL% EQU 4 GOTO ÇIKIŞ
    yankı Seçiminiz=%ERRORLEVEL%
    SEÇİME GİT
    :ÇIKIŞ

    Artık CHOICE kullanarak, mantığı kullanıcı tarafından tanımlanabilen toplu iş dosyaları oluşturabilirsiniz.

    Toplu iş dosyalarındaki gecikmeler

    Bir zamanlar, DOS'ta, bir toplu iş dosyasında beklemeyi organize etmek için uygun bir SLEEP komutu kullanılıyordu, ancak daha sonra standart Windows kurulum setinden ek bir Kaynak Setine taşındı. Oradan system32 dizinine kopyalayabilir ve toplu iş dosyalarınızda kullanabilirsiniz.

    : SLEEP N - burada N, geciktirilecek saniye sayısıdır.

    Kaynak Seti elinizin altında değilse, daha önce tartışılan CHOISE komutunu metin görüntülemeden ve nn saniye (1-99) sonra otomatik yanıt oluşturma ile kullanabilirsiniz:

    Choice.com /T:y,10 /N - 10 saniye gecikme

    Daha evrensel bir yöntem, geridöngü arayüzüne gerekli sayıda paketle ping atmaya dayanır. Geridöngü arabirimine (ana bilgisayar adı - yerel ana bilgisayar veya IP adresi 127.0.0.1) ping, herhangi bir gerçek veri aktarımı olmadan gerçekleştirilir, örn. neredeyse anında ve pingler arasındaki aralık 1 saniyedir. "-n" tuşunu kullanarak ping sayısını belirterek, n ​​saniyelik bir gecikme elde edebilirsiniz:

    Ping 127.0.0.1 -n 30 > null - 30 saniye gecikme verir

    Uygulamayı çalıştıran bilgisayarları arayın

    Bu komut dosyasını uygulamak için paketteki yardımcı programlar kullanılır. PSAraçları(Kısa Açıklama). Adı (adın ilk kısmı) başlangıçta bir parametre olarak verilen, örneğin game gibi, çalışan bir programa sahip bilgisayarları yerel ağda arayan bir toplu iş dosyası oluşturalım. Bulunursa, ADMINCOMP bilgisayarına bir mesaj gönderilir ve algılanan uygulamadan zorla çıkılır. Aramak için Pslist.exe yardımcı programını kullanacağız ve dönüş kodunu analiz edeceğiz. ERRORLEVEL değişkeninin sıfıra eşit olması, yardımcı programın uzak bilgisayarda arama ölçütleriyle eşleşen bir işlem bulduğu anlamına gelir. Toplu iş dosyasını çalıştırırken arama işleminin adı bir parametre olarak ayarlanacaktır. Batch dosyamıza bir isim verelim psl.bat. Bir parametre ile çalıştırmak şuna benzer:
    psl bat oyunu
    Öncelikle, başlangıçta parametrenin komut satırında ayarlanıp ayarlanmadığını kontrol etmemiz gerekiyor ve ayarlanmamışsa kullanıcıya bir mesaj vererek yürütmeden çıkacağız. Parametre ayarlanmışsa "PARMOK" etiketine gidin:
    @Eko kapalı
    eğer "%1" NEQ "" ise PARMOK'A GİT
    ECHO Aranacak sürecin adını belirlemeniz gerekir.
    çıkış
    :PARMOK
    Şimdi bilgisayarların IP adreslerinin PSlist komut satırı için tutarlı bir şekilde üretilmesini sağlamamız gerekiyor. Bunu yapmanın en kolay yolu, adresin sabit bileşeninin değerine (örneğin - 192.168.0.) ve daha düşük olanın hesaplanan değerine geçici bir ortam değişkeni (yalnızca toplu iş dosyasının süresi için geçerlidir) ayarlamaktır. kısım (örneğin, 1-254 aralığında). Örneğin, adres aralığındaki bilgisayarları taramamız gerektiğini varsayacağız:
    192.168.0.1 - 192.168.0.30:
    IPTMP=192.168.0 olarak ayarlayın. - adresin üst kısmı
    set /A IPLAST=1 - alt kısım. /A tuşu, hesaplanmış bir sayısal ifade anlamına gelir
    IPFULL=%IPTMP%%IPLAST% - tam IP adresi değerini ayarlayın.
    PSlist için komut satırı şöyle görünecektir:
    pslist \%IPFULL% %1
    Artık geriye PSlist'i döngüsel olarak çalıştırmak, değeri 30'a ulaşana kadar her döngüde adresin alt kısmına bir tane eklemek ve yürütmeden sonra ERRORLEVEL değerini analiz etmek kalıyor. Sonucu analiz etmek için şu komutla geçişi gerçekleştireceğiz:
    GOTO SONUÇ%ERRORLEVEL%
    bir işlem algılandığında REZULT0 etiketine ve REZULT1 etiketine geçiş sağlanması
    2013-08-25 14:35:35: Makaleler : Bilgi güvenliği : Yazılım . Hoşuna gitti mi?
  • 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).