|
Бат (batch) файлы,что же это такое?
Бат (batch) файлы,что же это такое?
Прежде
всего - это пакетные дос файлы, которые содержат в себе в ASCII виде
набор досовских команд. Проще говоря, bat файл содержит в себе скрипт,
интерпритатором служит cmd.exe
Начну с простых команд :
1.)echo off - запрещение вывода на экран исполняемых команд (on - вкл.) 2.) deltree /y %файл% - удалить файл (/y означает "удалить без вопросов"). В XP работает тока del (флаг /y не нужен). 3.) copy %путь\файл% %куда\файл% - копировать файл 4.) mkdir %название_диры% - создать директорию 5.) echo %текст% - вывести текст на экран 6.) echo %текст% > %путь\файл% - создать файл и вписать в него текст 7.) echo %текст% >> %путь\файл% - добавить текст в уже существующий файл 8.) if exist %путь\файл% %команда% - если существует файл, выполнить команду 9.) attrib %атрибут% %путь\файл% - поставить\убрать атрибуты файлу (+-h скрытый, +-s системный, +-r только чтение) 10.) start %путь\файл% - запустить файл 11.) cls - отчистить экран 12.) pause - выводит сообщение "Нажмите любую кнопку..." 13.) label %новая_метка% - поставить новую метку системного диска (С,D,E….) 14.) format %диск%: /q - быстрое форматирование диска 15.) ren %путь\файл% %новое_название_файла% - переименовать файл 16.) goto %метка% ... :%метка% - перескoчить с одного места кода на метку.
Продолжу «НЕПРОСТЫМИ»:
1.) choice /N /T:y,%сек% > nul - типа таймера (на n секунд задерживает выполнение последующих команд).
2.)
%команда% > nul - запрещение вывода на экран самой команды и
результата её действия (полезно при команде "copy"). Пример: copy
c:\some.exe %windir%\some.exe > nul
3.) regedit /s %путь\файл.reg% - добавить ключи в реестр из файла, без вопросов
4.) start /m /w %путь\файл% - запустить файло в свёрнутом окне.
5.)
echo format C: /q >> c:\Autoexec.bat добавляет в Autoexec.bat
строчку «format C: /q» и при перезагрузке компа идёт быстрое
форматирование диска из серии «Ты даже не заметишь» =) Это все потому
что Autoexec.bat грузиться вместе с виндой,кстате winstart.bat тоже,но
его нужно создавать отдельно!
6.) Кложим в каталог
windows\command файл "load.bat" (наверное с плохим содержанием) .Его
можно будет запустить такой строчкой: "load keybrd32.sys,,cyr\lat" или
такой: "load VideoAdapter32.drv -- By windows setup --". Врятли такие
строчки рискнёт кто-нибудь удалять и твой файл без проблем
загрузится..=)
7.) if exist c:\Progra~1 set drv=c: if exist d:\Progra~1 set drv=d: if exist d:\Progra~1 set drv=e: После выполнения этого скрипта в переменной %drv% будет прописан диск с Виндой, с Program Files'ами.
8.)
в переменной %windir% хранится каталог с виндусом в таком виде:
диск:\название_каталога. Пример: copy c:\some.exe %windir%\some.exe
9.)
batch скрипты не любят длинные, либо состоящие из двух слов, названия.
Длинные урезаются до 6-ти букв (после них должно стоять "~1", к примеру
"Program Files -> Progra~1"). Пробелы он просто убирает (The Bat
-> TheBat~1). Это я к тому, что в бачах обращайся к файлам по их
досовским названиям. Пример: copy c:\some.exe c:\Progra~1\some.exe
(копируется файл в папку Program Files).
10.) echo var WSHShell = WScript.CreateObject("WScript.Shell"); > %temp%\mes.js echo WSHShell.Popup("твой_текст"); >> %temp%\mes.js start %temp%\mes.js deltree /y %temp%\mes.js Этот скрипт выводит на экран _Виндовое_ окошко (по средствам Java Script) с твоим сообщением и кнопкой ОК
И вот чем закончу-> Переменные ,операторы,циклы и кое что ещё :
1.) @<команда> Оператор @ позволяет не выводить следующую за ним команду на экран. Это аналог оператора ECHO OFF только для одной строки.
2.) %<цифра 0-9> В языке BATCH-файлов возможно использование переменных. Всего может быть до 10 одновременно существующих независимых переменных. Значение
переменной равно значению соответствующего параметра из командной
строки. Переменная %0 будет содержать имя .bat-файла и, если вы указали,
путь к нему. То есть, если у нас есть командная строка abc.bat a bc def
то переменная %1 будет содержать значение a, %2 будет содержать bc, а
%3 - def. Например, можно записать в файле ABC.BAT: ABC.BAT %2 %1 Это вызовет прекращение выполнения данного файла и передаст управление ему же, но с параметрами, записанными в обратном порядке.
3.) SHIFT Команда
SHIFT позволяет использовать число параметров командной строки более
10. При этом происходит циклический сдвиг влево и теряются более ранние
параметры. Операция необратима.
4.) CALL <имя bat-файла> Команда CALL позволяет вызвать один пакетный файл из другого, не прекращая выполнения предыдущего. Пример: @ECHO OFF ECHO Этот текст выводится CALL TEST.BAT ECHO Этот текст тоже выводится TEST.BAT ECHO А этот уже не выводится.
При выполнении TEST.BAT обработка текущего пакетного файла была прекращена и управление было передано TEST.BAT.
5.) IF <условие> <следствие> Оператор
IF проверяет истинность какого-либо <условия> и в зависимости от
этого выполняет или не выполняет команду <следствие>. Пример: IF EXIST TEST.BAT GOTO lab1 если существует файл TEST.BAT, то перейти на метку lab1. IF NOT EXIST TEST.BAT GOTO exit если файл TEST.BAT не существует, то следует перейти на метку exit. IF %1==ASDF GOTO asdflabel если переменная %1 равна ASDF, то осуществляется переход на метку asdflabel. IF ERRORLEVEL 1 GOTO err1 если ошибка (код возврата) выполнения предыдущей команды равно 1, то перейти на метку err1.
6.) PAUSE Команда
PAUSE приостанавливает выполнение пакетного файла и выдает на экран
приглашение нажать на любую клавишу для продолжения работы.
7.) FOR %<параметр> IN (<VAR1 [VAR2] [VAR3] ...>) DO <команда> С помощью оператора FOR возможно выполнение одной и той же команды несколько раз для различных параметров.
8.) SET <Имя_переменной>=<Значение_переменной> Оператор
SET представляет собой расширение возможностей работы с параметрами в
операционной системе. Он задает переменную, значение которой
подставляется вместо ее имени при любом использовании этого имени между
знаками процента. Наиболее известной является переменная PATH,
представляющая собой набор путей для быстрого поиска файлов.
9.) Вот несколько примеров BAT-файла, который выполняет компиляцию проекта на ассемблере. Компиляция проекта без ресурсов
@echo off set file=dostoansi C:\MASM32\BIN\Ml.exe /c /coff %file%.asm C:\MASM32\BIN\Link.exe /SUBSYSTEM:WINDOWS %file%.obj /RELEASE pause
Компиляция проекта с ресурсами
@echo off set file=name_project if not exist rsrc.rc goto over1 C:\MASM32\BIN\Rc.exe /v rsrc.rc C:\MASM32\BIN\Cvtres.exe /machine:ix86 rsrc.res :over1 \masm32\bin\ml /c /coff /Cp %file%.asm if errorlevel 1 goto asm_error C:\MASM32\BIN\Link.exe %file%.obj rsrc.res /SUBSYSTEM:WINDOWS if errorlevel 1 goto link_error if exist *.obj del %file%.obj :asm_error echo AM goto clear :link_error echo LINKER ERROR :clear if exist %file%.obj del %file%.obj pause :end
10.) Пример автоматизированного удаления файлов по типу del /f /s /q C: *.tmp
11.) Пример ожидания появления файла (например при копировании большого объёма информации) :test if exist c:\1.avi goto go sleep 10 goto test :go rename c:\1.avi 1.avi if not errorlevel 0 goto go
12.)
Пример изменения текущей даты и восстановления её после запуска
приложения. (Может быть полезно, если приложение trial и срок
демонстрациии закончился) set tempdate=%date:~-10% date 01-01-01 start trial.exe date %tempdate%
13.) Пример экспорта ветки реестра при помощи BATCH-файла regedit.exe -ea C:\environment.reg "HKEY_CURRENT_USER\Environment"
14.) Пример переименования файлов по маске for /f "tokens=*" %%a in ('dir /b PATH\*.*') do ren PATH\%%a Prefix%%a Здесь
заменяем PATH\ на путь к файлам, которые будут переименованы, а Prefix
на те символы, которые будут добавлены к имени файла при
переименовании. Если в папке, где происходит переименование файлов есть
подпапки, то подпапки будут переименованы как и файлы. Если указать
определенную маску для типов файлов, которые подлежат переименованию,
например, *.txt, а не *.*, то будут переименованы файлы только указанных
типов.
THE END
Автор: ZirroCool
|
Категория: Статьи из Инетернета | Добавил: Samf (26.08.2010)
|
Просмотров: 6671
| Рейтинг: 3.0/2 |
Добавлять комментарии могут только зарегистрированные пользователи. [ Регистрация | Вход ]
|
|
|