Bat dosyaları, örnekler. Yarasa dosyaları yazma - toplu iş dosyası örnekleri Bitmiş yarasa dosyaları

  • 21.04.2021

Alexey Komolov (St.Petersburg)

Bir keresinde yarasa virüsleri hakkında bir makale yazmıştım. Bu yazımda bat dosyalarının kendilerinden ve ne olduklarından bahsetmek istiyorum.

Toplu iş veya toplu iş dosyaları, yorumlayıcı komut kümeleri içeren ve *.bat veya *.cmd uzantılarına sahip sıradan metin dosyalarıdır (*.cmd yalnızca NT ailesi işletim sistemlerinde çalışır). Bu tür dosyaları normal Not Defteri veya başka bir metin düzenleyici kullanarak düzenleyebilirsiniz.

Aşağıda Windows 2000'de test ettiğim bazı kullanım örneklerini anlatacağım. Bu örneklerden bazıları Windows 9x'te çalışıyor.

Yarasa dosyasının kendisini oluşturarak başlayalım. Bunu yapmak için Not Defteri'nde yeni bir metin belgesi oluşturun, açın ve aşağıdaki iki satırı yazın:

@echo Bu toplu iş dosyası

Ardından Dosya > Farklı kaydet menüsünü seçin, Dosya türü > Tüm dosyalar'ı seçin, "Dosya adı" alanına uzantılı dosya adını girin - örneğin, 1.bat - ve örneğin sürücünün kök dizinine kaydedin C. Şimdi C sürücüsünü açın ve oluşturduğunuz dosyayı çalıştırın. Ekranda şu kelimelerin bulunduğu bir pencere belirecektir:

Bu toplu iş dosyası

Devam etmek için herhangi bir tuşa basın...

Herhangi bir tuşa bastıktan sonra, bat dosyası yürütülürken pencere kapanacaktır.

Her satırın önündeki köpek sembolüne (@) dikkat edin. Bat dosyasındaki bu sembol, komutun kendisinin ekranda görüntülenmesi gerekmediğini, sadece çalışmasının sonucunun görüntülenmesi gerektiğini belirtir.

Bir deneme olarak, bu dosyayı Not Defteri ile açıp her satırın başındaki "köpek" sembolünü kaldırabilir, çıkan *.bat dosyasını kaydedip çalıştırabilirsiniz - sonucu hemen göreceksiniz.

Demek yarasa dosyalarının nasıl oluşturulacağını biliyorsun. Ancak bir şeyler yapmaları için onlara bazı komutlar verilmesi gerekiyor. Bunu yapmak için Başlat menüsü > Çalıştır'a gidin ve görünen pencerede cmd komutunu (NT ailesinin Windows için) veya komutunu (Windows 9x için) girin - komutun girildiği bir komut istemi göreceksiniz:

Ve kullanabileceğiniz mevcut komutların bir listesini, kısa açıklamalarla birlikte göreceksiniz.

Belirli bir komut için daha ayrıntılı bir açıklamaya ihtiyacınız varsa, komut satırına girin

yardım komut adı

Örneğin, AT komut tuşları hakkında ayrıntılı yardım almak için aşağıdaki komutu girin:

Sonuç olarak, bir bat dosyasından AT komutunu çalıştırmak için bir tuş listesi ekranda görünecektir.

Yarasa dosyanız saf DOS'ta değil de Windows altında yürütülüyorsa, herhangi bir uygulamayı çalıştırabilir veya ondan dosya açabilirsiniz. Örneğin, çalışması tamamlandıktan sonra bat dosyasının günlük dosyasını otomatik olarak açmanız gerekiyorsa, bat dosyasının son satırına aşağıdaki komutu eklemeniz yeterlidir:

filename.txt dosyasını başlat

Yürütme sonucunda filename.txt dosyası açılacak ve *.bat dosyasının kendisi işini tamamlayacaktır. Bu yöntem, günlük dosyası küçükse iyidir, aksi takdirde Not Defteri, WordPad'i kullanmayı teklif ederek açmayı reddeder. Ancak bu sorun da çözülebilir (ki bunu aşağıda, diğer örneklerde yazacağım).

yarasa dosyalarını otomatik çalıştır

Çoğu zaman, rutin işlemlerini gerçekleştirmek için yarasa dosyalarını otomatik olarak çalıştırma ihtiyacı vardır.

Windows işletim sisteminin standart teslimatına dahil olan Zamanlayıcı, yarasa dosyalarını bir programa göre otomatik olarak çalıştırmak için en uygundur. Bununla birlikte, belirli bir aralıkta belirli günlerde veya saatlerde bir toplu iş dosyasının başlatılmasını çok esnek bir şekilde yapılandırabilirsiniz. Ayrıca birden fazla program vb. oluşturabilirsiniz.

Yarasa dosyalarını yerel olarak çalıştırmak için üçüncü taraf şirketlerin programlarını kullanabilirsiniz.

bat dosyaları, etki alanlarında oturum açma komut dosyaları olarak da kullanılabilir. Aynı zamanda, isteği ne olursa olsun, kullanıcı ağa her girdiğinde yürütülürler.

Kullanıcıların bilgisayarlarına yüklenen makineler veya yazılımlar hakkında bilgi toplamayı otomatikleştirmek, Windows ayarlarında değişiklik yapmaya zorlamak, yazılımı kullanıcı fark etmeden yüklemek ve manuel olarak gerçekleştirilmesi çok uzun zaman alacak diğer görevleri otomatikleştirmek için kullanılabilirler.

Bir yarasa dosyası kullanarak rastgele bir ada sahip bir dosya oluşturma.

Toplu dosya yürütme sırasında bir dosya oluşturmak için şuna benzeyen bir yeniden yönlendirme sembolü kullanılır >

Yani bir dosya oluşturmak için ekrandan gelen veri akışını bir dosyaya yönlendirmeniz gerekir. Bunu aşağıdaki komutla yapabilirsiniz:

@echo Başlangıç ​​dosyası>C:\1.txt

Bu komutu yürüttükten sonra, C: / sürücüsünün kökünde Start file satırına sahip bir metin dosyası oluşturulacaktır.

Ayrıca, bir dosya oluştururken, adında sistem değişkenlerini veya bunların bir kısmını kullanabilirsiniz. Örneğin, .bat dosyasının başlatıldığı tarihe eşit bir ada sahip bir .bat dosyasının çalışması hakkında bir rapor dosyası oluşturabilirsiniz. Bunu yapmak için bat dosyasında aşağıdaki satırları kullanın:

datetemp=%date:~-10%'u ayarla

@echo .>%SYSTEMDRIVE%\%DATETEMP%.txt

Bu iki satırın nasıl çalıştığını biraz açıklayayım.

İlk olarak, DATE sistem değişkeninin sağından soluna 10 karakter atanan bellekte bir datetemp değişkeni oluşturuyoruz. Şimdi geçici değişken datetemp yalnızca geçerli tarihi içerir.

Sonraki satırda nokta karakterinin çıktısını datetemp değişkeninden adını aldığımız bir dosyaya yönlendiriyoruz ve *.txt uzantısı açıkça belirtiliyor. Dosya, yarasa dosyasının yürütüldüğü bilgisayarın sistem sürücüsünde oluşturulacaktır.

Bir sistem yöneticisi olduğunuzu ve ağdaki bilgisayarlar hakkında bilgi toplamanız gerektiğini varsayalım. Ve belirli verilerin hangi bilgisayara ait olduğunu bilmek için, toplanan bilgilere bilgisayarın adını eklemek daha uygun olacaktır. Bu, aşağıdaki komutla yapılabilir:

@echo .>C:\KlasörAdı\%BİLGİSAYARADI%.txt

Bu komut, toplu iş dosyasının yürütülmesi sırasında, toplu iş dosyasının yürütülmekte olduğu bilgisayarın adıyla C:/ sürücüsünde bir metin dosyası oluşturur.

Belirli bir ada sahip bir dosya oluşturmak için herhangi bir sistem değişkenini kullanabilir veya sistem değişkenlerine ve (veya) diğer verilere dayanarak kendinizinkini oluşturabilirsiniz.

Bat dosyası kullanarak bir klasör oluşturma.

Bir bat dosyası kullanarak bir klasör oluşturmak için ya MKDIR komutu ya da onun kısaltılmış karşılığı MD kullanılır. Bu komut şöyle görünür:

MD KlasörAdı

Böyle bir komutu yürüttükten sonra, bat dosyasının başlatıldığı klasörde KlasörAdı klasörü oluşturulacaktır.

Farklı bir konumda, örneğin D:/ sürücüsünün kökünde bir dosya oluşturmak için, bu klasörün komutta bulunacağı konumun tam yolunu kullanın. Bu durumda komut şöyle görünecektir:

MD D:\KlasörAdı

Klasör oluştururken sistem değişkenlerini de kullanabilirsiniz. Örneğin, D:/ sürücüsünün kökünde mevcut kullanıcının adıyla bir klasör oluşturabilirsiniz. Bunun için %USERNAME% değişkeni kullanılır. Komutun kendisi şöyle görünecektir:

MD D:\%USERNAME%

Ancak komutu daha da karmaşıklaştırabilir ve bilgisayarının sistem sürücüsünde mevcut kullanıcının adıyla bir klasör oluşturabilirsiniz. Bu komut şöyle görünecektir:

MD %SYSTEMDRIVE%\%USERNAME%

Ayrıca, klasörler veya dosyalar oluştururken herhangi bir sistem değişkenini veya parçalarını kullanabilirsiniz. Örneğin, kullanıcının bilgisayarının sistem sürücüsünde geçerli tarih olarak adlandırılan bir klasör oluşturmak için aşağıdaki komut kullanılır:

datetemp=%date:~-10%'u ayarla

MD %SYSTEMDRIVE%\%datetemp%

Bu örnek şu şekilde çalışır: ilk komut, bellekte bat dosyası sona erdiğinde yok edilecek olan bir datetemp değişkeni oluşturur. Yani bat-file işini bitirmediği sürece bu değişkenin değeri ile işlem yapma imkanına sahip olacaksınız. Datetemp değişkenine, DATE sistem değişkeninin sağından soluna, yani geçerli tarihten itibaren 10 karakter atanır.

DATE değişkeni, DN GG.AA.YYYY biçimindedir. Soldaki ilk karakterler haftanın gününün adıdır, böylece onları güvenle atabilir ve datetemp saat değişkenine yalnızca geçerli tarihi atayabilirsiniz.

Ayrıca sizin için benzersiz, okunması kolay ve kullanışlı adlara sahip klasörler oluşturarak değişkenleri istediğiniz gibi değiştirebilirsiniz.

SET komutunu kullanarak tüm değişkenlerin bir listesini alabilirsiniz.

Komut yürütme sonucunun bir dosyaya yönlendirilmesi.

Otomatik modda karmaşık bir yarasa dosyası yürütürken, çoğu zaman birçok nedenden dolayı çalışmalarının sonuçlarını kontrol etmeyle ilgili zorluklar vardır. Bu nedenle, *.bat dosyası komutlarının sonuçlarını ayrı bir metin günlük dosyasına kaydetmek ve ardından *.bat dosyasının doğru çalışmasını kaydedilen günlüğe göre analiz etmek ve gerekirse işlemi ayarlamak daha kolaydır. bu çok yarasa dosyasının.

*.bat-file komutlarının sonucunu aşağıdaki kodu kullanarak günlük dosyasına yönlendirebilirsiniz:

@Eko kapalı

yankı Başlangıç ​​%time%

yankı Test.txt oluştur

yankı testi>C:\test.txt

echo Test.txt dosyasını Old_test.txt'ye kopyalayın

C:\test.txt C:\Old_test.txt dosyasını kopyalayın

yankı Durdur %time%

Aşağıda bu koddaki satırların ne anlama geldiğini anlatacağım.

İlk satır, komutların çıktısını kendileri devre dışı bırakır. Böylece, günlük dosyasına yalnızca yürütmelerinin sonuçları yazılacaktır.

İkinci satır, günlük dosyasına toplu iş dosyasının başlangıç ​​zamanını yazar.

Üçüncü satır, günlük dosyasına aşağıdaki komutun test.txt dosyasını oluşturacağına dair bir açıklama yazar.

Dördüncü terim, C:/ sürücüsünün kökünden test.txt dosyasını oluşturur. Bu dosya örnek olarak oluşturulmuştur - onu farklı bir şekilde adlandırabilir ve farklı bir yere yerleştirebilirsiniz. Aynı komut, test kelimesini C:\test.txt dosyasına yazar.

Beşinci satır, günlük dosyasına, aşağıdaki komutun bir dosyayı bir konumdan diğerine kopyaladığının bir açıklamasını verir.

Altıncı satır, oluşturulan C:\test.txt dosyasını C:\Old_test.txt dosyasına kopyalar, yani. dosyanın bir kopyası yeni bir adla oluşturulur.

Ve son olarak, son yedinci satır, toplu iş dosyasının bitiş zamanını görüntüleme komutunu içerir. Toplu iş dosyasının başlangıç ​​zamanının günlük dosyasına kaydedilmesiyle birlikte bu iki zaman değeri, toplu iş dosyasının çalışma zamanına ilişkin bir tahmin sağlar.

Bu toplu iş dosyasını log.bat gibi herhangi bir adla kaydedin.

Toplu iş dosyasının çalışmasıyla ilgili raporu ayrı bir klasöre kaydetmeniz ve her gün yeni bir dosya adıyla bir rapor yazmanız gerekecek, böylece daha sonra önceki günlerin günlüklerine başvurabilirsiniz. herhangi bir gün. Ve diyelim ki, günlük dosyasının adı, toplu iş dosyasının çalıştırıldığı tarih biçiminde olmalıdır.

Tüm bunları uygulamak için, örneğin, C:/ sürücüsünde LOG adında bir klasör oluşturun, yani bunun tam yolu *.bat dosyasında C:\LOG gibi görünecektir. Oluşturulan log.bat toplu iş dosyası aşağıdaki komutla çalıştırılacaktır:

log.bat>C:\LOG\%date~-10%.txt

Toplu iş dosyası Zamanlayıcı'dan başlatılacaksa, *.bat dosyasının tam yolunu belirtmeniz gerekir. Yolda boşluk varsa, tırnak işaretlerini veya 8.3 biçimini kullanmanız gerektiğini unutmayın. Diğer bir deyişle, yarasa dosyasının yolu örneğin C:\Program Files\1.bat gibi görünüyorsa, yarasa dosyasını çalıştırmak için Zamanlayıcı komut satırında şöyle görünecektir:

"C:\Program Files\1.bat">C:\LOG\%date~-10%.txt

Ya şöyle:

C:\Progra~1\1.bat>C:\LOG\%date~-10%.txt

İstediğiniz komutlardan herhangi birini kullanabilirsiniz, çünkü bunlar temelde aynı anlama gelir, sadece biraz farklı yazılır.

C:\LOG klasöründeki log.bat dosyasını çalıştırdıktan sonra, bat dosyasının başlatıldığı tarih şeklinde, örneğin 10/09/2010.txt adında bir dosya oluşturulacaktır. Bu metin dosyası, log.bat toplu iş dosyasının çalışması hakkında bir rapor olacaktır.

Bu bölümün başında örneğini yazdığım bat dosyasını yukarıda belirtilen komutla çalıştırmak, aşağıdaki içeriğe sahip bir günlük dosyasının oluşturulmasına neden olacaktır:

Başlangıç ​​19:03:27.20

test.txt oluştur

Test.txt dosyasını Old_test.txt dosyasına kopyalayın

Kopyalanan dosyalar: 1.

Dur 19:03:27.21

Bu nedenle, bat dosyasının sonuçlarını günlük dosyasına yönlendirmek için yeniden yönlendirme sembolünü > kullanmanız gerekir. Komut sözdizimi şöyledir:

Yol\DosyaAdı.bat>Yol\GünlükDosyaAdı.txt

Prensipte, günlük dosyasının uzantısı hemen hemen her şey olabilir. İstenirse, bir toplu işin yürütülmesine ilişkin bir rapor bir html sayfası olarak bile biçimlendirilebilir - karşılık gelen etiketler, log.bat örneğinde yorumlar görüntülendiği gibi bir günlük dosyasında görüntülenebilir - ve örneğin bir kurumsal sunucu

Onay isteğine otomatik yanıt.

Bazı komutlar, yürütüldüğünde potansiyel olarak tehlikeli bir eylemin onaylanmasını gerektirir. Örneğin, medyadaki dosyaları silen format veya del gibi komutlar, dosyaları silmeye veya medyayı biçimlendirmeye devam etmeden önce önce onay ister.

Bu komutlardan biri bir toplu iş dosyasında yürütülürse, onay istemi toplu iş dosyasının yürütülmesini durduracak ve kullanıcının önerilen birkaç seçenekten birini seçmesini bekleyecektir (genellikle bunlar 2 seçenektir - yürütmeye devam etmeyi kabul et). komut verin veya komutu reddedin ve sonlandırın).

Ancak toplu dosya yürütmenin sonucu bir günlük dosyasına yönlendirilirse, kullanıcı bir onay istemi görmez ve yarasa dosyası donmuş görünür.

Bu tür sorunları gidermek için, komuta istenen yanıtı yeniden yönlendirebilirsiniz, yani komutun sonuçlarının çıktısını bir dosyaya yeniden yönlendirmek için zıt eylemi gerçekleştirebilirsiniz.

Size potansiyel olarak tehlikeli bir eylemi onaylama talebinin nasıl göründüğüne dair belirli bir örnek göstereceğim. Örneğin, C:/ sürücüsünde, örneğin Papka adlı bir klasör oluşturun. Ardından, herhangi iki dosyayı (örneğin, 2 resim) içinde oluşturun (veya kopyalayın). Ardından bir komut istemi açın ve aşağıdaki komutu çalıştırın:

del C:\Klasör

Bu komut, belirtilen klasördeki tüm dosyaları kaldırmalıdır. Ancak her şeyi silmeden önce, aşağıdaki içeriği onaylamanız istenecektir:

C:\Klasör\*, Devam edilsin mi?

Komut, Y tuşuna (dosyaların silinmesini onaylayan) veya N tuşuna (dosyaları silmeden programdan çıkma) basılana kadar yürütülmeyecektir. Bir toplu iş dosyası otomatik modda yürütüldüğünde yürütmesi duracaktır.

Bunu önlemek için bir yönlendirme kullanın. Yönlendirme, boru karakteri (|) kullanılarak yapılır. Bu dikey çubuk, programa karakteri ekranda göstermek yerine, karakterin ardından gelen komuta “verilmesi” gerektiğini söyler.

Komut satırında aşağıdaki komutu çalıştırarak yeniden yönlendirmeyi test edebilirsiniz:

echo Y|del C:\Klasör

Ekranda Papka klasöründeki tüm dosyaların silinmesini onaylamak için bir istek gösterilir, ancak hemen olumlu bir yanıt (Y) verilir. Papka klasöründeki tüm dosyalar silinecek.

Ancak kendinize zarar vermemek ve ihtiyacınız olan dosyaları silmemek için bu komuta dikkat edin.

Devamı bir sonraki sayıda

toplu iş dosyası yorumlayıcı komut kümelerini içeren ve uzantıya sahip düz bir metin dosyasıdır. .bat veya .cmd! (.cmd yalnızca NT ailesi işletim sisteminde çalışır). Bu tür dosyaları not defteri "Veya başka bir metin düzenleyiciyi kullanarak düzenleyebilirsiniz.

Bir toplu iş dosyası yazıyoruz

İkinci durum için bir toplu iş dosyası oluşturacağız (çok daha karmaşık değil). Toplu iş dosyası yazmak için standart bir not defteri alın. Aşağıdaki satırları not defterine yazın:

Eko kapalı - görsel kopyalama işlemini gizler.

C:\Program Dosyaları\QIP\Kullanıcılar- geçmişin bulunduğu klasör.

f:\rar.exe a -r kullanıcıları > nul- kopyalamayı hızlandırmak için arşivleyiciyi çalıştırın.

users.rar g:\adc > nu dosyasını kopyalayın l - kopyalanacak adres.

del users.rar > boş- sabit sürücüde oluşturulan arşivi siler.

Flash sürücünün harfi her zaman bilinmez. "Bu durumda, birkaç seçenek yazıyoruz (kesin olarak birini tahmin edeceğiz):

chdit C:\Program Dosyaları\QIP\Kullanıcılar

f:\rar.exe a -r kullanıcıları > nul

users.rar e:\abc > nul dosyasını kopyalayın

g:\rar.exe a -r kullanıcıları > nul

users.rar g:\abc > nul dosyasını kopyalayın

h:\rar.exe a -r kullanıcıları > nul

users.rar h:\abc > nul dosyasını kopyalayın

del users-rar > null

Metin belgemizi kaydediyoruz. Buna xxx.txt diyelim. Şimdi uzantıyı .txt'den .bat'a değiştiriyoruz. Bu, Total Commander "e.

Otomatik çalıştırma oluştur

Şimdi toplu iş dosyasının bilgisayara bağlandığında USB flash sürücüden otomatik olarak başlatıldığından emin olmamız gerekiyor. Bunun için yeni bir metin belgesi oluşturup içine şunu yazıyoruz:

ShellExeCute="xxx.bat"

Dosyayı kaydedin ve yeniden adlandırın otomatik çalıştırma.inf.

Arşiv yapmak

WinRAR'ın bulunduğu klasörden (varsayılan olarak C:\Program Files\WinRAR dosyasını alıyoruz rar.exe. Flash sürücünün kökünde adı olan bir klasör oluşturun ABC. Ayrıca kalan üç dosyayı flash sürücünün kök dizinine atıyoruz ( xxx.bat, autorun.inf, rar.exe).

Tüm dosyaları meraklı gözlerden saklıyoruz (farenin sağ tuşu ile diyoruz) Dosya Menüsü > Özellikler > Gizli. Hepsi bu. Flash sürücüyü "kurbana" veriyoruz ve sonucu bekliyoruz.

sosyal mühendislik

Otomatik başlatmanız gerekmez. "Kurban"ın kendisi bir toplu iş dosyası başlatabilir. Bunu yapmak için sosyal mühendislik kullanmanız gerekir. Örneğin, Microsoft'un Windows için yeni bir güncelleme yayınladığını kullanıcıya bildiririz. Bu güncelleştirme, işletim sisteminin performansını ve güvenliğini artırır. Güncellemeyi yalnızca bir flash sürücüden yüklemeniz gerekir. Toplu iş dosyamızı başlatmanız için bir neden düşünebilirsiniz. Her şey hayal gücünüze ve yaratıcılığınıza bağlıdır.

.bat'ı .exe'ye dönüştürmek

Daha fazla "güvenlik" için neperonym.bat in.exe (birdenbire "kurban" toplu iş dosyaları yazmaya alıştı). Küçük bir program bu konuda bize yardımcı olacaktır. Açıklama v3.0.

Buradan indirebilirsiniz: http://uploadbox.com/fMes/c8d5a60af9/ (boyut 3.51 Mb). Program penceresinde, boş bir sayfa içeren simgeye tıklayın ve toplu iş dosyası (yarasa) veya Dosya > Yeni > Toplu iş dosyası (yarasa). Görünen pencerede "metnimizi" yazıyoruz.

Şimdi yürütücümüz için uygun bir simge belirleyelim. PenceredeÖzellikleri alana tıklayınÖzel Simge ve önceden hazırlanmış bir simge seçin. Ardından, basın F7 veyaProje > İnşa Et . İşte bu, ehe-shnik hazır.

Toplu iş veya toplu iş dosyaları, yorumlayıcı komut kümeleri içeren ve bat veya cmd uzantısına sahip düz metin dosyalarıdır (cmd yalnızca NT ailesi işletim sistemlerinde çalışır). Bu tür dosyaları not defteri veya başka bir metin düzenleyici kullanarak düzenleyebilirsiniz.

Not defterini açın ve aşağıdaki iki satırı yazın:

@echo Bu toplu iş dosyası
@Duraklat

Bu toplu iş dosyası
Devam etmek için herhangi bir tuşa basın...

Herhangi bir tuşa bastıktan sonra pencere kapanacaktır, çünkü bat dosyası yapılır.
Yarasa dosyasındaki her komuttan önceki köpek simgesinin, komutun kendisinin ekranda görüntülenmesi gerekmediğini, yalnızca çalışmasının sonucunun görüntülenmesi gerektiğini gösterdiğini lütfen unutmayın. Denemek için, her satırın başındaki köpek karakterini kaldırın, ortaya çıkan yarasa dosyasını kaydedin ve çalıştırın.

Yarasa dosyalarında kullanılan komutlar

Bat dosyalarında kullanılabilecek komutların listesi komut satırına (Windows NT ailesi için Başlat - Çalıştır - cmd veya 9x satırı için Başlat - Çalıştır - komutu) yazılarak görüntülenebilir.

Yardımın sonucu, kısa açıklamalarla birlikte mevcut komutların bir listesidir. İlgilenilen komut hakkında daha ayrıntılı bilgi almak için komut satırına help komut_adı yazın. Örneğin, AT komut tuşları hakkında ayrıntılı yardım almak için aşağıdaki komutu çalıştırın:

Sonuç olarak, bir yarasa dosyasından AT komutunu çalıştırmak için bir tuş listesi ekranda görüntülenecektir.
Bat dosyası Windows altında yürütülüyorsa (saf DOS'ta değil), herhangi bir uygulamayı çalıştırabilir veya ondan dosya açabilirsiniz. Örneğin, çalışması tamamlandıktan sonra bat dosyasının günlük dosyasını otomatik olarak açmanız gerekir. Bunu yapmak için, son satırdaki bat dosyasına aşağıdaki komutu eklemeniz yeterlidir:

filename.txt dosyasını başlat

Bu komutu çalıştırmanın sonucu filename.txt dosyasının açılması olacak ve bat dosyasının kendisi işini tamamlayacaktır. Bu yöntem, günlük dosyası küçükse iyidir, aksi takdirde Not Defteri, WordPad'i kullanmayı teklif ederek açmayı reddeder. Ancak bu sorun da çözülebilir, ki bu daha sonraki örneklerde gösterilecektir.

Yarasa dosyalarının başlatılması nasıl otomatikleştirilir

Çoğu zaman, rutin işlemlerini gerçekleştirmek için yarasa dosyalarının başlatılmasını otomatikleştirmek gerekir. Yarasa dosyalarını bir zamanlamaya göre çalıştırmak için, Windows'un standart teslimatına dahil olan Zamanlayıcı en uygunudur. Bu yardımla, belirli bir aralıkta belirli günlerde veya saatlerde bir toplu iş dosyasının başlatılmasını çok esnek bir şekilde yapılandırabilirsiniz. Birden fazla program vb. oluşturabilirsiniz.

Toplu iş dosyalarını yerel olarak çalıştırmak için, standart Zamanlayıcı'ya çok sayıda ücretli ve ücretsiz alternatif olduğu için üçüncü taraf çözümleri kullanabilirsiniz.

Toplu iş dosyaları, etki alanlarında oturum açma komut dosyaları olarak da kullanılabilir. Bu şekilde kullanımları ile kullanıcının isteği ne olursa olsun ağa her girdiğinde çalıştırılacaktır. Kullanıcıların bilgisayarlarına yüklenen makineler veya yazılımlar hakkında bilgi toplamayı otomatikleştirmek, Windows ayarlarında değişiklik yapmaya zorlamak, yazılımı kullanıcı fark etmeden yüklemek ve manuel olarak gerçekleştirilmesi çok uzun zaman alacak diğer görevleri otomatikleştirmek için kullanılabilirler.

Bir yarasa dosyasından rastgele bir ada sahip bir dosya nasıl oluşturulur

Toplu dosya yürütme sırasında bir dosya oluşturmak için bir yönlendirme karakteri kullanılır. Şuna benziyor:
>
Onlar. bir dosya oluşturmak için akışı ekrandan bir dosyaya yönlendirmeniz gerekir. Bunu aşağıdaki komutla yapabilirsiniz:

@echo Başlangıç ​​dosyası>C:\1.txt

Bu komutu yürüttükten sonra, C sürücüsünün kökünde Start file satırına sahip bir metin dosyası oluşturulacaktır.
Bir dosya oluştururken, adında sistem değişkenlerini veya parçalarını kullanabilirsiniz. Örneğin, bat dosyasının başlatıldığı tarihe eşit bir ada sahip bir bat dosyasının çalışması hakkında bir rapor dosyası oluşturabilirsiniz. Bunun için bat dosyasında aşağıdaki satırları kullanabilirsiniz.

datetemp=%date:~-10%'u ayarla
@echo .>%SYSTEMDRIVE%\%DATETEMP%.txt

Bu iki satır böyle çalışır. İlk olarak, DATE sistem değişkeninin sağından soluna 10 karakter atadığımız bellekte bir datetemp değişkeni oluşturuyoruz. Böylece, artık geçici değişken olan datetemp yalnızca geçerli tarihi içerir. Sonraki satırda nokta karakterinin çıktısını datetemp değişkeninden adını aldığımız bir dosyaya yönlendiriyoruz ve txt uzantısı açıkça belirtilmiş. Dosya, yarasa dosyasının çalıştığı bilgisayarın sistem sürücüsünde oluşturulacaktır.

Bir yönetici ağdaki bilgisayarlar hakkında bilgi topladığı zaman, bilgisayar adını dosya adına eklemek daha uygun olabilir. Bu, aşağıdaki komutla kolayca yapılabilir:

@echo .>C:\KlasörAdı\%BİLGİSAYARADI%.txt

Bu komut, toplu iş dosyasının yürütülmesi sırasında, toplu iş dosyasının yürütülmekte olduğu bilgisayarın adıyla C sürücüsünde bir metin dosyası oluşturacaktır.
Belirli bir ada sahip bir dosya oluşturmak için herhangi bir sistem değişkenini kullanabilir veya sistem değişkenlerine ve/veya diğer verilere dayanarak kendinizinkini oluşturabilirsiniz.

bat dosyasından klasör nasıl oluşturulur

Bir klasör oluşturmak için MKDIR komutunu veya kısaltılmış karşılığı MD'yi kullanın. Bir bat dosyasından bir klasör oluşturmak için aşağıdaki komutu kullanmanız gerekir:

Böyle bir komutu yürüttükten sonra, bat dosyasının başlatıldığı klasörde KlasörAdı klasörü oluşturulacaktır. Bat dosyasının başlatılmasından farklı bir konumda, örneğin D sürücüsünün kökünde bir dosya oluşturmak için, yeni klasörün konumunun açık bir göstergesini kullanın. Komut şöyle görünecek:

MD D:\KlasörAdı

Klasör oluştururken sistem değişkenlerini kullanabilirsiniz. Örneğin, D sürücüsünün kökünde mevcut kullanıcının adıyla bir klasör oluşturabilirsiniz. Bunu yapmak için %USERNAME% değişkenine ihtiyacınız var ve komut şöyle görünecek:

MD D:\%USERNAME%

Komutu daha da karmaşıklaştırabilir ve bilgisayarının sistem sürücüsünde geçerli kullanıcının adıyla bir klasör oluşturabilirsiniz. Bunun için komut şöyle görünecektir:

MD %SYSTEMDRIVE%\%USERNAME%

Klasörler veya dosyalar oluştururken, herhangi bir sistem değişkenini veya bunların bir kısmını kullanabilirsiniz. Aşağıdaki örnek, kullanıcının bilgisayarının sistem sürücüsünde geçerli tarihe eşit bir ada sahip bir klasörün nasıl oluşturulacağını gösterir.

datetemp=%date:~-10%'u ayarla
MD %SYSTEMDRIVE%\%datetemp%

Bu yapı aşağıdaki gibi çalışır.
İlk komut, bellekte, bat dosyası sona erdiğinde yok edilecek olan bir datetemp değişkeni oluşturur. Bat dosyası işini bitirene kadar bu değişkenin değeri ile çalışmak mümkündür. Datetemp değişkenine, DATE sistem değişkeninin sağından soluna 10 karakter atanır, yani. geçerli tarihten itibaren. DATE değişkeni Dn GG.AA.YYYY biçimindedir. Soldan ilk karakterler haftanın gününün adıdır, bu yüzden onları atıyoruz ve geçici değişken datetemp'e yalnızca geçerli tarihi atadık.
Bu, klasör oluştururken olasılıklar listesiyle sınırlı değildir. Değişkenleri istediğiniz gibi değiştirebilir, benzersiz, okunması kolay adlara sahip klasörler oluşturabilirsiniz. SET komutu ile tüm değişkenlerin bir listesini alabilirsiniz.

Komutların çıktısı bir dosyaya nasıl yönlendirilir

Çoğu zaman, karmaşık bir yarasa dosyasını otomatik modda yürütürken, çalışmasının sonuçlarını birçok nedenden dolayı kontrol etmek zordur. Bu nedenle toplu iş dosyası komutlarının sonuçlarını bir metin dosyasına (günlük dosyası) yazmak daha kolaydır. ve daha sonra bu günlüğe göre yarasa dosyasının doğru çalışmasını analiz edin.
Bat dosyası komutlarının sonucunu bir günlük dosyasına yönlendirmek oldukça basittir. Aşağıda bunun nasıl yapılabileceği gösterilecektir.
Aşağıdaki içeriğe sahip bir .bat dosyası oluşturun (bu satırları Not Defteri'ne kopyalayın ve dosyayı .bat uzantısıyla kaydedin):

@Eko kapalı
yankı Başlangıç ​​%time%
yankı Test.txt oluştur
yankı testi>C:\test.txt
echo Test.txt dosyasını Old_test.txt'ye kopyalayın
C:\test.txt C:\Old_test.txt dosyasını kopyalayın
yankı Durdur %time%

İlk satır, komutların çıktısını kendileri devre dışı bırakır. Böylece, günlük dosyasına yalnızca yürütmelerinin sonuçları yazılacaktır.
İkinci satır, günlük dosyasına toplu iş dosyasının başlangıç ​​zamanını yazar.
Üçüncü satır, günlük dosyasına aşağıdaki komutun test.txt dosyasını oluşturacağına dair bir açıklama yazar.
Dördüncü satırdaki komut, C sürücüsünün kökünden test.txt dosyasını oluşturur. Dosya, örneğin oluşturulur. Bu komut, test kelimesini C:\test.txt dosyasına yazar.
Beşinci satır, günlük dosyasına, aşağıdaki komutun bir dosyayı bir konumdan diğerine kopyaladığının bir açıklamasını verir.
Altıncı satırdaki komut, oluşturulan C:\test.txt dosyasını C:\Old_test.txt dosyasına kopyalar, yani. dosyanın bir kopyası yeni bir adla oluşturulur.
Son yedinci satır, toplu iş dosyasının sona erdiği zamanı görüntüleme komutunu içerir. Toplu iş dosyasının başlangıç ​​zamanının günlük dosyasına kaydedilmesiyle birlikte bu iki zaman değeri, toplu iş dosyasının çalışma zamanına ilişkin bir tahmin sağlar.

Bu toplu iş dosyasını 1.bat gibi bir adla kaydedin
Bir toplu iş dosyasının çalışması hakkında bir raporu ayrı bir klasörde saklamak ve her gün yeni bir dosya adıyla bir rapor yazmak istediğimizi varsayalım, böylece herhangi bir gün önceki günlerin günlüklerine erişebiliriz. Ayrıca, toplu iş dosyasının çalışma tarihi şeklinde günlük dosyasının adını almak istiyorum. Tüm bunları uygulamak için, C sürücüsünde (örneğin) LOG adında bir klasör oluşturalım, yani. tam yolu C:\LOG gibi görünecek. Oluşturulan toplu iş dosyası 1.bat'ı aşağıdaki komutla çalıştıracağız:

1.bat>C:\LOG\%tarih~-10%.txt

Toplu iş dosyası Zamanlayıcı'dan başlatılacaksa, bat dosyasının tam yolunu belirtmeniz gerekir. Yolda boşluk varsa, tırnak işaretlerini veya 8.3 biçimini kullanmanız gerektiğini unutmayın. Diğer bir deyişle, örneğin bat dosyasının yolu C:\Program Files\1.bat ise, bat dosyasını çalıştırmak için Zamanlayıcı komut satırında aşağıdaki satırlardan biri belirtilmelidir:

"C:\Program Files\1.bat">C:\LOG\%date~-10%.txt
C:\Progra~1\1.bat>C:\LOG\%date~-10%.txt

1.bat dosyasını C:\LOG klasöründe çalıştırdıktan sonra, bat dosyasının başlatıldığı tarihe eşit bir ada sahip bir dosya oluşturulacaktır, örneğin, 01/13/2004.txt Bu bir rapor olacaktır. toplu iş dosyasının çalışması 1.bat
Yukarıdaki komutla sayfanın üst kısmındaki ilk listede örneği gösterilen bat dosyasını çalıştırmak, aşağıdaki içeriğe sahip bir günlük dosyası oluşturacaktır:

Başlangıç ​​19:03:27.20
test.txt oluştur
Test.txt dosyasını Old_test.txt dosyasına kopyalayın
Kopyalanan dosyalar: 1.
Dur 19:03:27.21

Bu nedenle, bat dosyasının sonuçlarını günlük dosyasına yönlendirmek için yeniden yönlendirme sembolünü kullanmanız gerekir> Sözdizimi aşağıdaki gibidir:

Yol\DosyaAdı.bat>Yol\GünlükDosyaAdı.txt

Günlük dosyası uzantısı herhangi bir şey olabilir. İstenirse, bir toplu işin yürütülmesine ilişkin bir rapor, bir html sayfası olarak bile biçimlendirilebilir (ilgili etiketler, örnek 1.bat'ta yorumların görüntülendiği gibi bir günlük dosyasında görüntülenebilir) ve bir şirket sunucusuna kopyalanabilir.

Bir onay isteğine otomatik olarak nasıl yanıt verilir?

Bazı komutlar, yürütüldüğünde potansiyel olarak tehlikeli bir eylemin onaylanmasını gerektirir. Örneğin, format veya del gibi komutlar, daha fazla yürütme için önce onay isteyecektir. Bu komutlardan biri bir toplu iş dosyasında yürütülürse, onay istemi toplu iş dosyasının yürütülmesini durduracak ve kullanıcının seçeneklerden birini seçmesini bekleyecektir. Ayrıca, toplu dosya yürütmenin sonucu bir günlük dosyasına yönlendirilirse, kullanıcı bir onay istemi görmez ve toplu iş dosyası donmuş görünür.

Bu tür rahatsızlıkları gidermek için istediğiniz yanıtı komuta yönlendirebilirsiniz. Onlar. komutun çıktısını bir dosyaya yönlendirmek için ters işlemi gerçekleştirin.
Potansiyel olarak tehlikeli bir eylemi onaylama isteğinin nasıl göründüğüne dair bir örneğe bakalım. C sürücüsünde örneğin bir Klasör klasörü oluşturalım. İçinde oluşturalım veya herhangi iki dosyayı içine kopyalayalım. Ardından, bir komut istemi açın ve aşağıdaki komutu çalıştırın:

Bu komut, belirtilen klasördeki tüm dosyaları kaldırmalıdır. Ancak önceden, aşağıdaki içeriğin onaylanması için bir talep verilecektir:

C:\Klasör\*, Devam edilsin mi?

Y tuşuna veya N tuşuna basılana kadar komutun yürütülmesi duracaktır.Otomatik modda bir toplu iş dosyası yürütüldüğünde, yürütülmesi duracaktır.
Bunu önlemek için bir yönlendirme kullanıyoruz. Yönlendirme sembolü kullanılarak gerçekleştirilir.
Dikey çubuk, karakteri ekranda göstermek yerine, karakteri takip eden komuta “verilmesi” gerektiğini belirtir. Yönlendirmeyi test edelim. Komut satırında aşağıdaki komutu çalıştırın:

echo Y|del C:\Klasör

Ekran, Klasördeki tüm dosyaları silmek için bir onay isteği gösterecek, ancak olumlu bir yanıt (Y) alacaktır. Klasördeki tüm dosyalar silinecek.
Bu komuta dikkat edin.

Bir toplu iş dosyası yürütülürken ekrandaki komutların çıktısı nasıl devre dışı bırakılır

Bir toplu iş dosyası yürütüldüğünde, komutun sonuçlarına ek olarak komutların kendisi ekranda görüntülenir. Komut çıktısını devre dışı bırakmak için @ sembolünü kullanabilirsiniz.
Tek bir komutun görüntülenmemesi için bu komutun başına @ işaretini koyabilirsiniz.

Bu komut, eko Testi komutunu ve bir sonraki satırda - çalışmasının sonucu olan Test kelimesini görüntüler.

Bu komut yalnızca komutun sonucunu gösterecektir, yani. kelime testi. Komutun kendisi görüntülenmez.
Tüm dosyanın yürütülmesi sırasında ekranda komutları görüntülemeniz gerekmiyorsa, toplu iş dosyasının ilk satırına aşağıdaki komutu yazmak daha kolaydır:

Bu komut, tüm toplu iş dosyasının süresi boyunca ekrana komutların çıktısını devre dışı bırakır. Komutun kendisinin görüntülenmesini önlemek için @ sembolü ile başlar.

Bir yarasa dosyasından başka nasıl çalıştırılır

Bazen, bir toplu iş dosyası yürütülürken başka bir toplu iş dosyasının çalıştırılması gerekli hale gelir. Ayrıca, bazı durumlarda, yardımcı dosya yürütülürken ana toplu iş dosyasının yürütülmesi askıya alınmalıdır ve diğerlerinde, yardımcı dosya ana dosyayla paralel olarak çalışmalıdır.
Örneğin iki bat dosyası oluşturalım. 1.bat adında ve yalnızca bir komut içeren

İkincisi 2.bat olarak adlandırılmıştır ve ayrıca bir komut içerir.

Şimdi 1.bat dosyasını çalıştıralım, devam etmek için herhangi bir tuşa basmanız istenecek bir pencere açılacak, bastıktan sonra pencere kapanacaktır. Böylece, call komutunu kullanarak bir toplu iş dosyasından diğerine çağrı yapmak, çağrı komutu tarafından çağrılan toplu iş dosyasının yürütülmesi tamamlanana kadar toplu iş dosyasının yürütülmesini durdurur.

Aksi takdirde, ana toplu iş dosyasının yürütülmesini kesintiye uğratmadan bir yarasa dosyasından bir uygulama veya başka bir toplu iş dosyası çalıştırmanız gerekir. Bunun genellikle, örneğin gece için programlanmış bir toplu iş dosyasının işlem günlüğünü zorla açarak yapılması gerekir, böylece sabahları kullanıcı uygulamanın doğruluğunu kontrol edebilir. Bunun için start komutunu kullanarak 1.bat dosyasındaki satırı düzeltelim.

ve 1.bat dosyasını çalıştırın Şimdi, devam etmek için herhangi bir düğmeye basmanız gereken bir pencere açıldı ve ana toplu iş dosyasının (1.bat) penceresi kapandı.
Bu nedenle, ilk toplu iş dosyasının çalışmasını durdurmadan bir toplu iş dosyasından diğerine çağrı yapmak için start komutunu kullanmanız gerekir.
Yukarıdaki başlatma ve arama komutları yalnızca diğer toplu iş dosyalarını başlatmak için değil, aynı zamanda herhangi bir uygulamayı başlatmak veya dosyaları açmak için de kullanılabilir.
Örneğin, bir toplu iş dosyasının gövdesinde log.txt dosyasını başlatmak, toplu iş dosyasını durdurmadan log.txt dosyasını Not Defteri'nde açacaktır.

bat dosyasından mesaj nasıl gönderilir

Ağdaki makinelerden birinde bir toplu iş dosyası yürütülürken, yöneticinin makinesine bir mesaj göndererek yürütmenin tamamlandığını yöneticiye bildirmek uygundur. Komutu toplu iş dosyasına ekleyerek bunu yapabilirsiniz.

net gönderme adı Mesaj metni

Burada ad, mesajın gönderildiği makinenin veya kullanıcının adıdır ve Mesaj metni, mesajın metnidir. Bu komutu yürüttükten sonra kullanıcı adına bir mesaj gönderilecektir.
Mesaj metninde Kiril kullanıldığında, metnin MS-DOS kodlamasında (866 kod sayfası) yazılması gerektiğini lütfen unutmayın. Aksi takdirde mesaj okunamayan karakterler şeklinde gelecektir. Bu kodlamayı destekleyen herhangi bir metin düzenleyiciyi kullanarak DOS kodlamasında metin yazabilirsiniz. Örneğin, FAR olabilir. Toplu iş dosyasını düzenlemek için FAR'da açın (F4) ve F8 düğmesine basın. DOS kodlaması, editörün en üst satırında belirtilmelidir ve altta, hızlı tuşlar hakkında bilgi isteminde, F8 tuşunda, geçerli DOS kodlamasının ve Win kodlamasına geçmek için Win yazısına sahip olmalıdır. F8.

Türe göre dosya silme nasıl otomatikleştirilir

Geçici dosyaların diskini temizlemek için şu komutu kullanabilirsiniz:

del /f /s /q C:\*.tmp

Neresi
/f - salt okunur özniteliğe sahip olsalar bile tüm dosyaları siler
/s - dosyaları tüm alt dizinlerden kaldırır
/q - dosya silme onayı istemini devre dışı bırakır
C: dosyaların bulunacağı ve silineceği sürücüdür. Tüm sürücüyü değil, örneğin C:\WinNT gibi bir klasörü belirtebilirsiniz.
*.tmp - silinecek dosya türleri

/q anahtarına ve sildiğiniz dosya türlerine dikkat edin. Komut izin istemeden siler ve yanlış dosya tipi belirtilirse gereksiz olanları silebilir.

Bir toplu iş dosyasından bir bilgisayarın IP adresi nasıl değiştirilir

IP adresi netsh komutu kullanılarak değiştirilebilir.
IP adresini doğru bir şekilde değiştirmek için önce mevcut yapılandırmayı bulmanız gerekir. Bunu komut satırında komutla yapabilirsiniz.

netsh arayüzü ip adresini göster

Bu komutun sonucu, ağ arayüzünün mevcut konfigürasyonunu görüntülemektir. Arayüzün adıyla ilgileniyoruz. Diyelim ki buna FASTNET deniyor.
IP adresini 192.168.1.42 olarak değiştirmek istediğinizi varsayalım, ağ adresleme statik, DHCP kullanmadan, ağ geçidi 192.168.1.1, maske 255.255.255.0 Bu durumda toplu iş dosyasından yürütülecek komut şöyle görünecektir:

netsh interface ip set address name="FASTNET" statik 192.168.1.42 255.255.255.0 192.169.1.1 1

Bu komutu çalıştırdıktan sonra, FASTNET arayüzü IP adresini 192.168.1.42 olarak değiştirecektir.
netsh komutu, komut satırından ağ ayarları üzerinde kapsamlı kontrol sağlar. Daha fazla işlevsellik için netsh /? ile ilgili yardıma bakın.

bat dosyasından bilgisayar adı nasıl alınır

Bir yarasa dosyası yürütürken bilgisayar adını öğrenmek için (bu değeri daha sonra kullanmak için), şu komutu kullanın:

Bu komut, üzerinde çalıştığı bilgisayarın adını döndürür.

Toplu iş dosyasından maske ile dosyalar nasıl yeniden adlandırılır

Bazen bir toplu iş dosyasındaki bir şablona göre bir klasördeki tüm dosyaları yeniden adlandırmak gerekli hale gelir. Bunu bir bat dosyasında aşağıdaki komutla yapabilirsiniz:

/f "tokens=*" için %%a in ("dir /b PATH\*.*") için PATH\%%a Öneki%%a yapın

Bu satırda, yeniden adlandırılacak dosyaların yolunu PATH\ ile ve yeniden adlandırırken dosya adına eklenecek olan bu karakterlerle Önek'i değiştirmeniz gerekir.
Toplu iş dosyasını yeniden adlandırmanın gerçekleştiği klasöre koymayın, aksi takdirde yeniden adlandırılacaktır. Dosyaların yeniden adlandırıldığı klasörün alt klasörleri varsa, alt klasörün adına da bir önek eklenir, yani. alt klasörler, dosyalar gibi yeniden adlandırılacaktır.
Örnekte olduğu gibi *.* değil, örneğin *.txt gibi yeniden adlandırmaya tabi olan dosya türleri için belirli bir maske belirtirseniz, yalnızca belirtilen türlerdeki dosyalar yeniden adlandırılır. Diğer dosya ve klasörler yeniden adlandırılmayacaktır.

İkinci seçenek:
PATH=C:\testini ayarla
(*.txt) içindeki %%I için "%thePATH%\%~nxI" "%%~nI.dat" yapın
Bir toplu iş dosyasında yüzde sembolü nasıl kullanılır

Bir toplu iş dosyasında yüzde sembolünü (%) kullanmak için iki kez yazmanız gerekir. Örneğin
yankı 50%%
Bat dosyasındaki bu komut %50 görüntüleyecektir. Echo %50 komutunu kullanırsanız, ekranda sadece 50 sayısı görüntülenecektir.
Toplu iş dosyalarında % sembolünü kullanırken bunu aklınızda bulundurun.

Toplu iş dosyasından kayıt defteri nasıl dışa aktarılır

regedit.exe -ea C:\environment.reg "HKEY_CURRENT_USER\Environment"

Bu komut, bir toplu iş dosyasında çalıştırıldığında, HKEY_CURRENT_USER\Environment dalını C:\environment.reg dosyasına kaldıracaktır.HKEY_CURRENT_USER\Environment içindeki ayarları geri yüklemeniz gerektiğinde, Environment.reg dosyasını çalıştırmanız yeterli olacaktır. . Bu komut, kayıt defterinde saklanan yazılım ve sistem ayarlarının günlük yedeğini almak için kullanılabilir.
Çıktı dosyasının kaydedileceği yolda veya kayıt şubesi adında bir boşluk varsa, tırnak içine alınması gerektiğini unutmayın.

Bir Toplu Dosyadan Kayıt Defteri Değişkenlerini Alma

Bir toplu iş dosyasından önceden kaydedilmiş veya yeni değişken değerleri kayıt defterine aktarma ihtiyacı varsa, bu komut kullanılarak yapılabilir.

regedit.exe -s C:\environment.reg

Bu komut, -s anahtarını kullanarak onay istemeden ortam.reg dosyasındaki verileri kayıt defterine aktarır.

Yarasa dosyasından tarih kontrolü nasıl atlanır

Bazı yazılımlar, başlangıçta mevcut sistem tarihini kontrol eder. Tarih, geliştirici tarafından belirlenenden daha büyükse, program başlamaz. Örneğin, geliştirici, programın sürümünün bir ay çalışabileceğine ve ardından kullanıcının programın güncellenmiş bir sürümünü yüklemesi gerektiğine inanıyor. Bir yandan, bu, önceki sürümlerle ilgili olarak, hataları giderilmiş programın yeni bir sürümüne sahip olacak olan kullanıcı için bir endişe kaynağıdır. Öte yandan üretici, kullanıcı yüklediği programın sürümünden tamamen memnun olsa bile kullanıcıyı yeni bir sürüm indirmeye zorlar. Bu sorun, programı çalıştıracak, tamamlanmasını bekleyecek ve tarihi program çalıştırılmadan önceki tarihe döndürecek olan aşağıdaki toplu iş dosyasıyla kolayca çözülebilir.

tempdate=%tarih ayarla:~-10%
tarih 01-01-04
not defteri.exe
tarih %tempdate%

Bu örnekte, mevcut sistem tarihi önce bir değişkende saklanır, ardından (ikinci satırda) sistem tarihi 1 Ocak 2004'e ayarlanır ve ardından sistem tarihini kontrol eden bir program çağrılır. Bu örnekte, Not Defteri'dir. Not Defteri açık olduğu sürece toplu iş dosyası beklemededir, bitmez ve sistem tarihini geri sıfırlamaz. Not Defteri kapatıldığında, toplu iş dosyası çalışmaya devam edecek ve sistem tarihini tempdate değişkeninde saklanan değere, yani. toplu iş dosyasını çalıştırmadan öncekine.

Programın başlatıldığı dosyanın yolu boşluk içeriyorsa, bunun (yol) tırnak içine alınması gerektiğini unutmayın. Yol Kiril içeriyorsa, bir toplu iş dosyası yazarken DOS kodlamasını destekleyen bir metin düzenleyici (örneğin, FAR) kullanmanız gerekir. Aksi takdirde toplu iş dosyasını çalıştırdığınızda "Belirtilen dosya dahili veya harici bir komut değil..." şeklinde bir mesaj alırsınız.

Program, yalnızca başlatıldığında geçerli sistem tarihini kontrol ederse ve işlem sırasında bunu tekrar yapmazsa, toplu iş dosyası, programın yürütülebilir dosyasının adından önce start deyimi eklenerek değiştirilebilir, yani. örneğimiz şöyle görünecek:

tempdate=%tarih ayarla:~-10%
tarih 01-01-04
notepad.exe'yi başlat
tarih %tempdate%

Bu durumda, toplu iş dosyası sistem tarihini değiştirecek, programı başlatacak ve tamamlanmasını beklemeden tarihi program başlatılmadan önceki tarihe döndürecektir.

Bir yarasa dosyasında belirli bir dosya nasıl beklenir

Bazen bir klasörde belirli bir dosya göründüğünde bazı eylemlerin gerçekleştirilmesi gerekir. Bir klasördeki bir dosyanın varlığını kontrol etmek için aşağıdaki toplu iş dosyasını kullanabilirsiniz.

:Ölçek
varsa c:\1.txt git
uyku 10
teste git
:Git
not defteri

Böyle bir toplu iş dosyası, C sürücüsünün kökünde 1.txt dosyasının olup olmadığını 10 saniyelik aralıklarla kontrol edecek ve 1.txt dosyası göründüğünde, go etiketinden sonra belirtilen eylem gerçekleştirilecektir, yani. bu örnekte, Not Defteri başlatılacaktır.
Uyku yardımcı programı, Kaynak Kitinin bir parçası olarak ücretsiz olarak dağıtılır. Buradan indirebilirsiniz.
1.txt dosyası büyükse ve bir yerden kopyalanmışsa, dosya henüz kopyalanmadığında veya başka bir uygulama tarafından işgal edildiğinde toplu iş dosyasının varlığını kontrol etmesi olabilir. Bu durumda, 1.txt dosyası ile bazı eylemleri gerçekleştirmeye çalışmak bir hata ile sonuçlanacaktır. Bunun olmasını önlemek için toplu iş dosyası aşağıdaki gibi değiştirilebilir.

:Ölçek
varsa c:\1.txt git
uyku 10
teste git
:Git
c:\1.txt 1.txt'yi yeniden adlandır
hata seviyesi 0 değilse git
del c:\1.txt

1.txt dosyası tamamen C sürücüsüne kopyalanmadığında veya başka bir uygulama tarafından işgal edildiğinde, yeniden adlandırma girişimi bir hataya neden olur ve döngü, dosya tamamen kopyalanana veya serbest bırakılana kadar tekrarlanır. rename c:\1.txt 1.txt komutu hatasız olarak yürütüldükten sonra (yani dosya ücretsizdir), ardından onunla herhangi bir eylemi gerçekleştirebilirsiniz. Son örnekte, bu onun kaldırılmasıdır.

bat dosyasına nasıl yorum eklenir

Büyük bir toplu iş dosyası yazarken, ana bloklarına yorum eklemek çok yararlıdır. Bu, bu blokların zaman içinde ne yaptığını bulmayı kolaylaştıracaktır.

Komut satırını doğru yerde (örneğin dosyaların bulunduğu klasörde) açmak için Shift tuşunu basılı tutarken bağlam menüsünü (RMB) çağırmanız gerekir:

Komut satırı ile nasıl çalışacağınız hakkında. Direkt komutlara geçelim.

Konsola help yazılarak, açıklama içeren tüm konsol komutlarının bir listesi elde edilebilir.
/? kullanılarak herhangi bir komut için yardım alınabilir.
Örneğin: DIR /? tüm DIR komut seçenekleri için yardım görüntüler

Bilgisayarı kapatmadan önce geçici dosyaları silme

Bence herkes en azından onlarla yüz yüze geldi. Bat dosyası, virüsün genellikle yüklendiği klasördeki geçici dosyaları silerek bilgisayarınızı düzgün bir şekilde kapatmanıza yardımcı olacaktır.

Aygıtın bir sonraki açılışında (erken bir aşamada), virüs kayıt defterine giriş yaparak sistemin normal çalışmasını bozar. Ve masaüstü yüklendiğinde, durumu düzeltmek zaten daha zor.

Tabii ki, tüm virüsler bu şemaya göre çalışmaz, ancak yine de kapatmadan önce geçici dosyaları ve sistem önbelleğini temizlemek bu tür riskleri önemli ölçüde azaltır.

başlat /bekle "" "C:\Program Files\CCleaner\CCleaner64.exe" /otomatik başlat /bekle "" "C:\WINDOWS\System32\shutdown.exe" /s /t 10

CCleaner, Windows'ta varsayılan olarak mevcut değildir. Ayrı olarak kurulması gerekir. Yükleyiciyi geliştiricinin web sitesinden indirebilirsiniz.

Önce CCleaner programı başlatılır ve bilgisayardaki tüm geçici dosyaları kaldırır. Ardından, CCleaner'ın çalışmasıyla olası çakışmaları önlemek için bilgisayar kapatma programı 15 saniyelik bir gecikmeyle başlatılır.

Bu örneği de içine kopyalamak gerekiyor. Bat dosyasının kısayolunu masaüstüne getirin, ona güzel bir simge atayın ve bu kısayol düğmesini kullanarak bilgisayarı kapatın.

bat dosyasını kullanarak bir klasördeki dosyaların listesini alın

Klasörlerdeki dosyaların listesini almak için periyodik olarak yarasa dosyalarını kullanırım. Yaygın bir durum: iş yerinde müşteriler, fotoğrafçının fotoğraflarını içeren bir arşiv gönderir. Fotoğraflar, malların ürün numaralarına göre başlıklandırılmıştır.

Fotoğrafa eşlik eden herhangi bir metin bilgisi yok. Gönderilen fotoğraflara göre bir liste yapılması ve sitedeki ürün kataloğuna aktarılması gerekmektedir. Her öğenin birden fazla fotoğrafı vardır. Bunlar şöyle adlandırılır:

  1. А1234 (2).jpg makale numarasına sahip malların fotoğrafı
  2. B1234 (2).jpg makaleli malların fotoğrafı

İlk önce, aşağıdaki komutla bir klasördeki tüm dosyaların bir listesini alıyorum:

dir *.jpg /B /L > filelist.txt

*.jpg komutu, liste derlenirken yalnızca JPG dosyalarının dikkate alınmasına izin verir. /B anahtarı, yalnızca klasördeki dosyaların adlarını içeren bir liste almanızı sağlar. /L anahtarı, tüm adları küçük harfle verir. >filelist.txt komutu filelist adında bir metin dosyası oluşturacak ve çıktıyı oraya yazacaktır.

Sonraki adım, her ürün için yalnızca bir girişin listede kalması için kopyalardan kurtulmaktır:

dosya listesi.txt | findstr /I /V "(2)" > temp.txt

findstr komutu, önceden alınan dosyada arama yapacaktır. /I anahtarı, kayıtları büyük/küçük harfe duyarsız bir şekilde aramanıza olanak tanır ve /V anahtarı, istenen eşleşmeyi içermeyen satırları yazar. Tırnak işaretleri, eşleştirilecek dizeyi belirtir. Ve son komut > temp.txt, adında "(2)" içermeyen tüm sonuçları geçici dosyaya yazacaktır. Sonuç olarak alacağım:

  1. A1234.jpg makalesine sahip malların fotoğrafı
  2. B1234.jpg makalesine sahip malların fotoğrafı

Ters işlemi gerçekleştirmeniz gerekiyorsa - çıktı yalnızca temp.txt dosyasıyla eşleşir, o zaman gerekli olanı komutlar listesinde bulamazsınız ( findstr /? ). Yalnızca tam eşleşmeye göre ters filtre vardır - /X .

Bu görev için, eşleşen satır numaralarını görüntülemek için /N komutunu kullanabilirsiniz (sayılar satırla birlikte görüntülenir):

dosya listesi.txt | findstr /I /N "(2)" > temp.txt

Metin bilgileriyle (metin dosyaları) çalışırken ana şey bir şeyi hatırlamaktır:

Metin işlemleri için kaynak olarak komut satırı aracılığıyla oluşturulmamış bir dosya kullanıyorsanız, bunun komut satırı tarafından anlaşılan bir kodlamada olması gerekir. Örneğin, CP1251 (ANSI).

Aksi takdirde, böyle bir şey alma riskiniz vardır:

Dosyalar olmadan dizin ağacını kopyala

Yeni projeler yapmaya başladığımda, dosya içermemesi dışında eski projeye benzer bir dizin ağacı almam gerekiyor. Yeni bir proje için, gerekli boş klasörlere 3-5 dosya eklemek, mevcut bir projeyi kopyalayıp gereksiz olanları oradan silmekten daha kolaydır.

Almak dosyasız dizin ağacı aşağıdaki komutu kullanabilirsiniz:

xcopy folder_1 folder_2 /T /E

xcopy komutu, folder_1'deki dizin ağacını temel alır ve bunun bir kopyasını folder_2 içinde oluşturur. /T anahtarı, dizinleri, içerdiği dosyaları kopyalamadan kopyalamanıza olanak tanır. /E anahtarı, dahil tüm dizinlerin kopyalanması gerektiğini belirtir. boş.

Optimal olarak, bir dizin ağacı elde etmek için, verici dizinin ana klasöründe bir komut satırı açmanız ve aynı klasörde kopyalanan ağacın yerleştirileceği bir dizin oluşturmanız gerekir. Bu durumda, komutun yalnızca donor klasörünün ve hedef klasörün adlarını belirtmesi gerekecektir (yukarıdaki örnekte olduğu gibi).