Фішки bat файлів - bat скрипти - каталог статей - вірусологія, погляд з delphi

Фішки bat файлів

Опис і фішки batch файлів.

Для початку давай разбёремся в тому, що ж таке batch'і. Перш за все - це пакетні дос файли, які містять в собі в ascii вигляді набір ДОСовскіх команд. По-російськи кажучи, bat файл містить в собі скрипт, інтерпритатором служить command.com.
Пояснюю: після прочитання цієї статті, ти зможеш писати проги, які видаляють системні файли, форматують диски і тд. Головне, тобі для цього знадобиться тільки блокнот і прямі руки, ніяких компіляторів і дебагеров не потрібно (бачі Не такі примітивні, як тобі здається - є віруси # 92; генератори, на них написані).
І ще. Я не буду описувати всі можливі прапори (параметри) кожної команди, тільки найбільш корисні.
Ну че, готовий? Поїхали!

Прості команди:
Для початку давай разбёремся в тому, що ж таке batch'і. Перш за все - це пакетні дос файли, які містять в собі в ascii вигляді набір ДОСовскіх команд. По-російськи кажучи, bat файл містить в собі скрипт, інтерпритатором служить command.com.
Пояснюю: після прочитання цієї статті, ти зможеш писати проги, які видаляють системні файли, форматують диски і тд. Головне, тобі для цього знадобиться тільки блокнот і прямі руки, ніяких компіляторів і дебагеров не потрібно (бачі Не такі примітивні, як тобі здається - є віруси # 92; генератори, на них написані).
І ще. Я не буду описувати всі можливі прапори (параметри) кожної команди, тільки найбільш корисні.
Ну че, готовий? Поїхали!
Прості команди:

Фішки, хитрості:
1: choice / N / T: y,% сек%> nul - типу таймера (на n секунд затримує виконання наступних команд).

3: regedit / s% шлях # 92; файл.reg% - додати ключі до реєстру з файлу, без питань

4: start / m / w% шлях # 92; файл% - запустити файло в згорнутому вікні.

5: чув про файл Autoexec.bat? Знаєш, що він вантажиться разом з компом? Напевне так. Так ось, він має розширення BAT. На що я натякаю? На те, що ти можеш в нього прописати рядок, наприклад, "format C: / q" (прописується вона ось так: echo format C: / q >> c: # 92; Autoexec.bat) і під час перезавантаження у жертви відформатуйте диск С.
Це я до того, що будь-який скрипт, вставлений в цей файл, буде виконаний при завантаженні компа. Також можеш створити в каталозі з виндой файл winstart.bat. Він також запустітья Віндус.

7: if exist c: # 92; Progra

1 set drv = c:
if exist d: # 92; Progra

1 set drv = d:
if exist d: # 92; Progra

1 set drv = e:
Після виконання цього скрипта в змінної .rv% буде прописаний диск з Віндою, з Program Files'амі.

9: batch скрипти не люблять довгі, або складаються з двох слів, назви. Довгі урізаються до 6-ти букв (після них повинно стояти "

1 ", наприклад" Program Files -> Progra

1 "). Прогалини він просто прибирає (The Bat -> TheBat

1 # 92; some.exe (копіюється файл в папку Program Files).

10: echo var WSHShell = WScript.CreateObject ( "WScript.Shell");>% temp% # 92; mes.js
echo WSHShell.Popup ( "твой_текст"); >>% temp% # 92; mes.js
start% temp% # 92; mes.js
deltree / y% temp% # 92; mes.js

Фішки, хитрості:
1: choice / N / T: y,% сек%> nul - типу таймера (на n секунд затримує виконання наступних команд).

3: regedit / s% шлях # 92; файл.reg% - додати ключі до реєстру з файлу, без питань

4: start / m / w% шлях # 92; файл% - запустити файло в згорнутому вікні.

5: чув про файл Autoexec.bat? Знаєш, що він вантажиться разом з компом? Напевне так. Так ось, він має розширення BAT. На що я натякаю? На те, що ти можеш в нього прописати рядок, наприклад, "format C: / q" (прописується вона ось так: echo format C: / q >> c: # 92; Autoexec.bat) і під час перезавантаження у жертви відформатуйте диск С.
Це я до того, що будь-який скрипт, вставлений в цей файл, буде виконаний при завантаженні компа. Також можеш створити в каталозі з виндой файл winstart.bat. Він також запустітья Віндус.

7: if exist c: # 92; Progra

1 set drv = c:
if exist d: # 92; Progra

1 set drv = d:
if exist d: # 92; Progra

1 set drv = e:
Після виконання цього скрипта в змінної .rv% буде прописаний диск з Віндою, з Program Files'амі.

9: batch скрипти не люблять довгі, або складаються з двох слів, назви. Довгі урізаються до 6-ти букв (після них повинно стояти "

1 ", наприклад" Program Files -> Progra

1 "). Прогалини він просто прибирає (The Bat -> TheBat

1 # 92; some.exe (копіюється файл в папку Program Files).

Тепер, коли у нас вже є деяка підготовка, почнемо мабуть.
Для початку визначтеся з типами файлів, які хочете відсортовувати з робочого столу (так, тримаю парі у вас все download-менеджери налаштовані на сохрененіе файлів на робочий стіл або десь в папку downloads? Їй би теж не завадила сортування.) Або взагалі з будь-якої потрібної папки (в принципі можливо звичайно і створення скрипта який весь ваш гвинт переполошилися, складе старанно все EXE в папочку EXE, після чого у вас перестане запускатися винда :)).

Ці каталоги не потрібно створювати заздалегідь, так як ми передбачаємо регулярне "вирізування" всіх цих папок з робочого столу куди-небудь з метою архівування, зберігання або навіть в цілях безпеки. Значить, нам потрібно буде створити їх попередньо або перевірити їх існування.
Отримуємо коротенький простий скрипт.

if not exist TXT md TXT
if not exist AVI md AVI
if not exist MP3 md MP3
if not exist JPG md JPG
if not exist RAR md RAR
if not exist HTM md HTM
if not exist EXE md EXE

Для тих, хто не зрозумів: "якщо не існує директорія ТХТ створити директорію ТХТ"; "Якщо не існує директорія AVI створити директорію AVI" і так далі. Але це тільки частина роботи, навіщо нам порожні каталоги?
Приступимо до написання скрипта сортування файлів. У мене він виглядає так:

move / -Y * .txt TXT
move / -Y * .doc TXT
move / -Y * .rtf TXT
move / -Y * .PDF TXT

move / -Y * .avi AVI
move / -Y * .mpg AVI
move / -Y * .divx AVI
move / -Y * .xvid AVI

move / -Y * .mp3 MP3
move / -Y * .wav MP3
move / -Y * .ogg MP3
move / -Y * .wma MP3

move / -Y * .jpg JPG
move / -Y * .bmp JPG
move / -Y * .gif JPG
move / -Y * .png JPG

move / -Y * .RAR RAR
move / -Y * .ZIP RAR
move / -Y * .gz RAR
move / -Y * .7z RAR

C командою move все зрозуміло, прапор / -Y варто, щоб при наявності двох однакових файлів вони не перезаписувати поверх (типовий випадок: у вас в директорії TXT існує "Текстовий документ.txt" і зовсім інший файл з таким же ім'ям на робочому столі, якщо ви приберете прапор / -Y, файл з робочого столу перепише потрібний вам файл в папці ТХТ, і тоді його вже не повернути). Командний рядок вас запитає, чи можна перезаписати файл поверх. Рекомендую відповідати немає, перейменовувати ТХТшку в щось більш значне і запускати скрипт знову :)

Так, в самому кінці команди вказана цільова директорія, куди потрапить файл. В принципі ви можете скидати все документи не прямо на робочий стіл, а наприклад в папку Desktop / Files /, тоді вам слід дописати це кожен раз Директорією в скрипті (як в першому, перевірочному, так і в сортувальному).

Крім того, можна користуватися зручною функцією SET. Наприклад, вам незручно писати після кожного файлу шлях, куди його слід кидати (можливо ви хочете скидати файли різних типів на різні вінчестери), тоді слід застосовувати цей прийом. Нехай у нас існує директорія C: / Files / TXT для текстових файлів. Ми можемо зберегти її в змінної% TXT% для простоти. Для цього просто в BAT-файлі з нового рядка пишемо

От і все! Тепер команда move для TXT буде така:

Набагато простіше спочатку задати всі шляхи і змінні з декількох букв для них, а потім вже використовувати ці змінні для сортування файлів. Крім того, так ви полегшите собі подальше додавання нових типів файлів і їх сортування!

І останнє. На підтвердження виконаної роботи ви можете дописати в кінець скрипта щось на кшталт:

echo All files sorted!
pause

В цьому випадку вам видадуть повідомлення про сортування всіх файлів і воно буде висіти до тих пір, поки ви не натиснете будь-яку клавішу (якщо не вжити pause, повідомлення промайне і ви його просто не встигнете побачити).

Не забудьте зберегти скрипт і перейменувати TXT-шку в BAT-файл. Перед запуском перевірте все ще раз, до речі якщо ви натиснете правою кнопкою по BAT-файлу, можна без проблем знайти пункт "Змінити" (Edit). Він дозволяє редагувати BAT-файли без перейменування будь-що-небудь інше.