Вы находитесь на странице: 1из 35

Batch (CMD/BAT) Войти

Форум программистов и сисадминов Киберфорум >


Компьютерный форум > Windows > Администрирование Наши страницы
Vkontakte, Регистрация
Windows > Batch (CMD/BAT)
Facebook, Twitter Восстановить пароль

Тесты Блоги Сообщество Поиск

Рейтинг 4.85/189:

Ris 1
793 / 175 / 9
Регистрация: 11.01.2011
Литература, учебники, пособия по CMD/BAT, список команд
Сообщений: 543
22.12.2011, 13:31. Просмотров 35061. Ответов 15
Метки литература cmd-bat (Все метки)

Обращаюсь ко всем.
Например, я слышал студенты писали, что им давали какие-то книги по CMD.
Если не скинуть, так хоть названия дайте. Всему буду рад.

1
Лучшие ответы (4)
Сообщение: #2316786 Сообщение: #2319255 Сообщение: #3074566 Сообщение: #4519944

22.12.2011, 13:31
QA
Эксперт
Ответы с готовыми решениями:
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940 Литература: статьи, книги, лекции, описания команд по BAT/CMD
Книги: 1. Уильям Р. Станек. Командная строка Microsoft Windows. Справочник
администратора 2....

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Несколько команд в Cmd через bat
Добрый вечер! Подскажите как через cmd мне сделать несколько операций.На примере: запуск cmd,...

Список команд в bat-файле


Имеется bat файл batch.bat, принимающий аргументы как-то так: batch.bat file.f И имеется другой...

Не могу вызвать командой HELP список команд CMD


Не могу вызвать список команд через help

Batch (CMD/BAT) несколько заданий на CMD/BAT


1.Напишите bat файл на диске с ,который будет искать на всех дисках файлы с расширением...

15

Ris 22.12.2011, 15:58 [ТС] 2


793 / 175 / 9 gimntut, спасибо, глянул, добавил в избранное - потом прочитаю.
Регистрация: 11.01.2011
Сообщений: 543
И по-моему есть 2 минуса:
Первый - несущественный: написано что команды "однострочные", а разделены на строки, поэтому тупо
скопировать нельзя.
Второй - более существенный, используется прямо тьма сторонних программ, которые надо скачивать, может быть
устанавливать.

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
0
gimntut 22.12.2011, 16:19 3
883 / 185 / 16
Регистрация: 18.07.2011 Сообщение от Ris
Сообщений: 260
Первый - несущественный: написано что команды "однострочные", а разделены на строки, поэтому тупо
скопировать нельзя.

Для учебника это даже хорошо


Увы, со временем батники начинают обрастать дополнительными программами.
В моём случае, это rar.exe, sed.exe и wget.
Приходится держать их в расшареной папке, чтобы все батники могли получить к ним доступ.
Использование внешних программ выгодно, когда в сети есть разные версии Windows, а батник должен делать
работу одинаково хорошо на всех машинах.
Но это специфика системного администрирования.
А вот если писать батники для компьютеров которые между собой не связаны и запускать их будет пользователь,
тогда лишние программы зло.
Но это редкость. На этот случай у меня всегда с собой флэшка с набором батников и вызываемых ими программ.
Взять тот же sed. Ну нет ни чего подобного в числе стандартных программ.

1
Ris 22.12.2011, 20:20 [ТС] 4
793 / 175 / 9
Регистрация: Сообщение было отмечено как решение
11.01.2011
Сообщений: 543
Решение

Для учебника это даже хорошо

несогласен, если было бы типа доделайте сами, а это все равно что опечатка.

wget это да. Альтернативы стандартной нет. Вместо rar предпочитаю 7z.
А sed можно заменить стандартными командами, хотя никто не отрицает, что ей легче пользоваться.

Добавлено через 13 минут


Isn, спасибо, это наиболее полная справка по командам и станд. программам, которую я видел.
Но оформление и составление подкачало.

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Добавлено через 3 минуты
Мне лично нравиться http://cmdhelp.ru
1.Есть немного общей информация. 2.Почти полная справка по командам, включая отдельную справку по каждой команде.
3.И есть пару статей пример использование некоторых команд.
Пункт 1 и 3 слабо%2ато.

Я тут решил справочку накатать, пока настроение есть. Зацените.

Первая глава. Переменные. Команда SET

Задание переменных

Вручную
Bash Выделить код
1 set x=stroka
2 set /a y=55

Ввод с клавиатуры
Bash Выделить код

1 set /p x="BBeduTe cTpoky: "

Типы переменных"

Тип строка
Bash Выделить код

1 set x=stroka

Ограничение 8184 символа.


Тип число
Bash Выделить код

1 set /a x=25*5

Ограничение от -2147483647 до 2147483647.

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Использование переменных

Вывод значения переменных


Bash Выделить код

1 echo %x%

Существующие переменные

%RANDOM% - раскрывается в случайное десятичное число между 0 и 32767.(от 0 до (2^17)-1)


Bash Выделить код

1 set /a random10=%random%/3277

Выводит случайное число от 0 до 9.


У меня это число по нелепой псевдослучайности цифру секунды
%CD% - раскрывается в строку текущей директории.
%DATE% - раскрывается в текущую дату, используя тот же формат команды DATE.
%TIME% - раскрывается в текущую дату, используя формат команды TIME.
%ERRORLEVEL% - раскрывается в текущее значение ERRORLEVEL.
Уровень ошибки, 0 - это нет ошибки, 1 - это есть ошибка, а другие это номера ошибки.

Чтобы получить полный список переменных и их значений введите команду SET

Операции со строковыми или численными переменными

Соединение 2-ух строковых переменных


Bash Выделить код

1 set x=Gaz
2 set y=Prom
3 echo %x%%y%
4 (GazProm)

Вывод определенного(ых) символа(ов) из строки


Символы номеруются начиная с 0!

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Bash Выделить код

1 set str=babywka

Вывод 1-ого символа


Bash Выделить код

1 echo %str:~0,1%
2 (b)

Вывод 3-х символов с конца строки


Bash Выделить код

1 echo %str:~-3%
2 (wka)

Вывод всей строки кроме 2-ух первых символов


Bash Выделить код

1 echo %str:~2%
2 (bywka)

Вывод всей строки кроме 2-ух последних символов


Bash Выделить код

1 echo %str:~0,-2%
2 (babyw)

Вывод 3-х символов начиная с 3


Bash Выделить код

1 echo %str:~2,3%
2 (byw)

Удаление подстроки из строки


Bash Выделить код

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Bash Выделить код

1 echo %str:ba=%
2 (bywka)

Замена подстроки из строки на другую подстроку


Bash Выделить код

1 echo %str:bab=xlop%
2 (xlopywka)

Удаление кавычек(") из строки


Bash Выделить код

1 set str2="qwerty"
2 echo %str2:"=%
3 (qwert)

В данном случае: если кавычки в начале и конце строки - можно юзать


Bash Выделить код

1 echo %str2:~1,-1%
2 (qwert)

Существуют 2 способа использовать переменную в переменной, например: вывод n-ого символа

Первый способ с call set


Bash Выделить код

1 call set x=%%str:~%n%,1%%


2 echo %x%

Второй способ с for и setlocal enabledelayedexpansion


Bash Выделить код

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Bash Выделить код
1 setlocal enabledelayedexpansion
2 for /l %%i in (%n%,1,%n%) do (set x=!str:~%%i,1!)
3 echo %x%

тут неважно что в for писать, главное


Bash Выделить код
1 set x=!str:~%n%,1!

писать в do
С циклами мы разберемся в следующей статье.
Но, пока уточню: если код второго способа юзать в пакетном файле (BATнике), то вместо %i юзаем %%i.

Операции с числовыми переменными

Увеличивание на единицу
Bash Выделить код

1 set /a x+=1

Увеличивание в 2 раза
Bash Выделить код

1 set /a x+=%x%

аналогично
Bash Выделить код

1 set /a x*=2

Возведение в квадрат
Bash Выделить код

1 set /a x*=%x%

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Возведение в куб
Bash Выделить код
Bash Выделить код
1 set /a x=%x%*%x%*%x%

Деление
Деление в CMD является целочисленным!(то есть делится до целого числа)
Bash Выделить код
1 set /a x=15
2 set /a y=4
3 set /a xy=%x%/%y%
4 (3)

Сложение
Bash Выделить код

1 set /a x=5
2 set /a y=-6
3 set /a xy=%x%+%y%
4 (5+(-6)=5-6=-1)

Вычитание
Bash Выделить код
1 set /a x=5
2 set /a y=-6
3 set /a xy=%x%-%y%
4 (5-(-6)=5+6=11)

Вычисление остатка
Bash Выделить код

1 set /a xy=%x% "%" %y%

Унарные операторы
(Не знаю, как они называются)

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Bash Выделить код
1 set /a y="!"%x%

дает результат(%y%) 1, если переменная(%x%) равна 0, и 0 (%y%) в любых других случаях


Bash Выделить код
1 Например
2 set /a x=5
3 set /a y="!"%x%
4 (0)
5 set /a x=0
6 set /a y="!"%x%
7 (1)

Bash Выделить код


1 set /a y="~"%x%

дает результат -1-%x% (%y%)


Например
Bash Выделить код

1 set /a x=5
2 set /a y="~"%x%
3 (-1-5=-(1+5)= -6)
4 set /a x=-3
5 set /a y="~"%x%
6 (-1-(-3)=-1+3=3-1= 2)

Отрицание
Bash Выделить код
1 set /a y="-"%x%

дает результат 0-%x% (%y%)


Например
Bash Выделить код

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Bash Выделить код

1 set /a x=5
2 set /a y="-"%x%
3 (-5)
4 set /a x=-3
5 set /a y="-"%x%
6 (3)

Двоичные операторы
Bash Выделить код
1 set x=3
2 (в двоичной системе счисления - 0011)
3 set y=5
4 (в двоичной системе счисления - 0101)

Побитовое И (AND)

Побитовое И — это бинарная операция, действие которой эквивалентно применению логического И к каждой паре битов,
которые стоят на одинаковых позициях в двоичных представлениях операндов.
Другими словами, если оба соответствующих бита операндов равны 1, результирующий двоичный разряд равен 1; если же
хотя бы один бит из пары равен 0, результирующий двоичный разряд равен 0.

Bash Выделить код


1 set /a xy=%x%"&"%y%
2 (1, в двоичной системе счисления - 0001)

Побитовое ИЛИ (OR)

Побитовое ИЛИ — это бинарная операция, действие которой эквивалентно применению логического ИЛИ к каждой паре
битов, которые стоят на одинаковых позициях в двоичных представлениях операндов.
Другими словами, если оба соответствующих бита операндов равны 0, двоичный разряд результата равен 0; если же хотя
бы один бит из пары равен 1, двоичный разряд результата равен 1.

Bash Выделить код

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Bash Выделить код

1 set /a xy=%x%"|"%y%
2 (7, в двоичной системе счисления - 0111)

Побитовое исключающее ИЛИ (XOR)

Побитовое исключающее ИЛИ (или побитовое сложение по модулю два) — это бинарная операция, действие которой
эквивалентно применению логического исключающего ИЛИ к каждой паре битов, которые стоят на

одинаковых позициях в двоичных представлениях операндов.


Другими словами, если соответствующие биты операндов различны, то двоичный разряд результата равен 1; если же биты
совпадают, то двоичный разряд результата равен 0.

Bash Выделить код

1 set /a xy=%x%"^"%y%
2 (6, в двоичной системе счисления - 0110)

К битовым операциям также относят битовые сдвиги. При сдвиге значения битов копируются в соседние по направлению
сдвига.
Различают сдвиг влево (в направлении от младшего бита к старшему) и вправо (в направлении от старшего бита к
младшему).
При логическом сдвиге значение последнего бита по направлению сдвига теряется (копируясь в бит переноса), а первый
приобретает нулевое значение.

Двоичный арифметический сдвиг

Арифметический сдвиг аналогичен логическому, но значение слова считается знаковым числом, представленным в
дополнительном коде.
Так, при правом сдвиге старший бит сохраняет свое значение. Левый арифметический сдвиг идентичен логическому.

Вправо
Bash Выделить код

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Bash Выделить код

1 set /a xy=%x%">>"1
2 (1, в двоичной системе счисления - 0011->0001)
3 set /a xy2=%y%">>"1
4 (2, в двоичной системе счисления - 0101->0010)
5 set /a n=13
6 (в двоичной системе счисления - 1101)
7 set /a xn=%n%">>"2
8 (3, в двоичной системе счисления - 1101->0011)
9 set /a my=-%y%">>"1
10 (-3, в двоичной системе счисления - 1011(-5)->1101(-3))

Влево
Bash Выделить код
1 set /a xy=%x%"<<"1
2 (6, в двоичной системе счисления - 0011->0110)
3 set /a xy2=%y%"<<"1
4 (10, в двоичной системе счисления - 0101->1010)
5 set /a xy3=%y%"<<"4
6 (80, в двоичной системе счисления - 0101->1010000)
7 set /a my=-%y%"<<"1
8 (-10, в двоичной системе счисления - 1011(-5)->10110(-10))

Максимальный размер отдельной переменной среды составляет 8192 байта.(у меня выходило только 8184, наверное это
вместе с названием...)
Максимальный общий размер всех переменных среды, включая имена переменных и знак равенства, составляет 65 536
Кбайт.

И я забыл, про 8-ричную и 16-ричную систему счисления в CMD

Системы счисления

Числовые значения рассматриваются как десятичные, если перед ними не стоит префикс 0x для шестнадцатеричных
чисел, и 0 для восьмеричных чисел. Например, числа 0x12, и 022 обозначают десятичное число 18.

Обратите внимание на запись восьмеричных числе: 08 и 09 не являются допустимыми числами, так как в восьмеричной
системе исчисления цифры 8 и 9 не используются.

Восьмеричная система счисления

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Bash Выделить код
1 set /a x=022
2 (Это 22 в восьмеричной системе счисления, и 18 в десятичной)

Можно производить все операции, также как и с десятеричными числами.


Но после задания значения переменной, значение хранится в десятичной системе счисления.
Например, сложение
Bash Выделить код
1 set /a xy=022+07
2 (Это 22+7=31 в восьмеричной системе счисления, и 31 в десятичной)

Шестнадцатеричная система счисления


Bash Выделить код

1 set /a x=0x3A
2 (Это 3A в восьмеричной системе счисления, и 58 в десятичной)

Вычитание
Bash Выделить код
1 set /a xy=0x3A-0x66
2 (Это 3A-66=-54 в восьмеричной системе счисления, и -44 в десятичной)

14
22.12.2011, 20:20

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
wildwolf007 22.12.2011, 20:34 5
17 / 26 / 0 Спасибо. Для новичков просто супер да и для себя разобрал кое-какие вопросы. Спасибо.
Регистрация: 11.10.2011
Сообщений: 379
Завершенные тесты: 1 1
Ris 22.12.2011, 22:10 [ТС] 6
793 / 175 / 9 wildwolf007, спасибо.
Регистрация: 11.01.2011
Сообщений: 543
Для новичков просто супер да и для себя разобрал

самокритично
Все мы новички. Или новички или про. Про в CMD я только 1 видел(Delphiist).

0
gimntut 23.12.2011, 06:57 7
883 / 185 / 16
Регистрация: Сообщение было отмечено как решение
18.07.2011
Сообщений: 260
Решение
Добавлю от себя.

Сохранение в переменной вывода программы


К сожаление, передача вывода программ на вход команды set не работает:
Bash Выделить код
1 echo 1|set /p AA=""
2 set AA

Поэтому можно воспользоваться временным сохранением в файл:


Bash Выделить код

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Bash Выделить код
1 echo 1> 0.tmp
2 set /p AA="" <0.tmp
3 del 0.tmp
4 echo %AA%

Примеры использования
Узнать динамически генерируемое имя архива WinRar:
Bash Выделить код
1 rar a -z%Comment% -p%p% "-ag yyyy-mm-dd[n]" %OutPath%\%arhivename%.%ext% @%FileList% >rar.log.tmp
2 for /f "tokens=2*" %%I in ('find /i "Creating archive" ^<rar.log.tmp') do @echo %%J >rarfilename.tmp
3 set /p rarfilename="" <rarfilename.tmp
4 del rarfilename.tmp

Узнать имя последнего изменённого файла в папке:


Bash Выделить код
1 dir /b /a-d /o-d *.* >%temp%\0.tmp
2 set /p lastfile="" <%temp%\0.tmp
3 del %temp%\0.tmp
4 dir /a-d "%lastfile%"| find /i "%lastfile%"

5
Ris 24.12.2011, 01:04 [ТС] 8
793 / 175 / gimntut, молодец, я совсем про это забыл.
9
Регистрация:
11.01.2011 Хотя в последнем примере я бы юзал так:
Сообщений:
Bash Выделить код
543
1 dir /a-d /o-d *.* | more +5 >%temp%\0.tmp
2 set /p lastfile="" <%temp%\0.tmp
3 del %temp%\0.tmp
4 echo "%lastfile%"
5 pause

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Нашел в файле ntcmds.chm такую инфу:

Сообщение от Использование операторов перенаправления команд (Click here)

Операторы перенаправления команд используются для изменения местоположений потоков ввода и вывода команд,
заданных по умолчанию, на какие-либо другие. Местоположение потоков ввода и вывода называется дескриптор.

В следующей таблице описаны операторы перенаправления потоков ввода и вывода команд.

Оператор перенаправления, описание

> Записывает данные на выходе команды вместо командной строки в файл или на устройство, например, на принтер.

< Читает поток входных данных команды из файла, а не с клавиатуры.

>> Добавляет выходные данные команды в конец файла, не удаляя при этом существующей информации из файла.

>& Считывает данные на выходе одного дескриптора как входные данные для другого дескриптора.

<& Считывает входные данные одного дескриптора как выходные данные другого дескриптора.

| Считывает выходные данные одной команды и записывает их на вход другой команды. Эта процедура известна под
названием «канал».

По умолчанию, входные данные команды (дескриптор STDIN) отсылаются с клавиатуры интерпретатору команд Cmd.exe,
далее Cmd.exe отправляет выходные данные команды (дескриптор STDOUT) в окно командной строки.

В следующей таблице представлены доступные дескрипторы.

дескриптор Числовой эквивалент дескриптора Описание


STDIN 0 Ввод с клавиатуры
STDOUT 1 Вывод в окно командной строки
STDERR 2 Ошибка вывода в окно командной строки
UNDEFINED 3-9 Эти дескрипторы определяются индивидуально для каждой прикладной программы.

Номера от 0 до 9 представляют первые 10 дескрипторов. Для запуска программы и перенаправления любого из 10


дескрипторов используется интерпретатор команд Cmd.exe. Для задания требуемого дескриптора перед оператором
перенаправления введите его номер. Если дескриптор не определен, то по умолчанию оператором перенаправления ввода
«<» будет ноль (0), а оператором перенаправления вывода «>» будет единица (1). После ввода оператора «<» или

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
«>» необходимо указать, откуда читать и куда записывать данные. Можно задать имя файла или любой из существующих
дескрипторов.

Для задания перенаправления в существующие дескрипторы используется амперсанд (&), затем номер требуемого
дескриптора (например, &номер_дескриптора). Например, для перенаправления дескриптора 2 (STDERR) в дескриптор 1
(STDOUT) введите:

1<&2

Дублирование дескрипторов

Оператор перенаправления «&» дублирует выходные или входные данные с одного заданного дескриптора на другой
заданный дескриптор. Например, для отправки выводных данных команды dir в файл File.txt и отправки ошибки вывода в
файл File.txt введите:

Bash Выделить код


1 dir>c:\file.txt 2>&1

При дублировании дескриптора происходит копирование всех его исходных характеристик. Например, если дескриптор
доступен только для записи, то все его дубликаты будут доступны только для записи. Нельзя продублировать дескриптор с
доступом только для чтения в дескриптор с доступом только для записи.

Перенаправление ввода команд (<)

Для перенаправления ввода команд с цифровой клавиатуры на файл или на устройство используйте оператор «<».
Например, для ввода команды sort из файла List.txt введите:

Bash Выделить код


1 sort<file.txt

Содержимое файла File.txt появится в командной строке в виде списка в алфавитном порядке.

Оператор «<» открывает заданное имя файла с доступом только для чтения. Поэтому с его помощью нельзя записывать в
файл. Например, при запуске программы с оператором <&2 все попытки прочитать дескриптор 0 ни к чему не приведут,
так как изначально он был открыт с доступом только для записи.

Примечание

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Дескриптор 0 задан по умолчанию для оператора перенаправления ввода «<».

Перенаправление вывода команд (>)

Выходные данные практически всех команд высвечиваются в окне командной строки. Даже команды, выводящие данные
на диск или принтер, выдают сообщения и запросы в окне командной строки.

Для перенаправления вывода команд из окна командной строки в файл или на устройство применяется оператор «>». Этот
оператор используется с большинством команд. Например, для перенаправления вывода команды dir в файл Dirlist.txt
введите:

Bash Выделить код


1 dir>dirlist.txt

Если файл Dirlist.txt не существует, интерпретатор команд Cmd.exe создаст его. Если файл существует, Cmd.exe заменит
информацию в файле на данные, полученные от команды dir.

Для запуска команды netsh routing dump и последующей отправки результатов ее работы в Route.cfg введите:

Bash Выделить код

1 netsh routing dump>c:\route.cfg

Оператор «>» открывает заданный файл с доступом только для записи. Поэтому с помощью данного оператора файл
прочитать нельзя. Например, при запуске программы с оператором перенаправления <&0 все попытки записать
дескриптор 1 ни к чему не приведут, так как изначально дескриптор 0 был открыт с доступом только для чтения.

Примечание.

Дескриптор 1 задан по умолчанию для оператора перенаправления вывода «>».

Использование оператора «<&» для перенаправления ввода и дублирования

Для использования оператора перенаправления ввода необходимо, чтобы задаваемый файл уже существовал. Если файл
для ввода существует, то интерпретатор команд Cmd.exe открывает его с доступом только для чтения и его содержимое
отправляет в команду так, как если бы это был ввод с цифровой клавиатуры. При задании дескриптора интерпретатор
команд Cmd.exe дублирует его в дескриптор, существующий в системе.

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Например, для считывания файла File.txt на вход в дескриптор 0 (STDIN) введите:

Bash Выделить код

1 <file.txt

Для открытия файла File.txt, сортировки его содержимого и последующей отправки в окно командной строки (STDOUT)
введите:

Bash Выделить код

1 sort<file.txt

Для того чтобы найти файл File.txt и перенаправить дескриптор 1 (STDOUT) и дескриптор 2 (STDERR) в Search.txt введите:

Bash Выделить код


1 findfile file.txt>search.txt 2<&1

Для дублирования определенного пользователем дескриптора 3 в качестве входной информации для дескриптора 0
(STDIN) введите:

<&3

Использование оператора «>&» для перенаправления ввода и дублирования

При перенаправлении вывода в файл и задании существующего имени файла интерпретатор команд Cmd.exe открывает
файл с доступом только для записи и переписывает его содержимое. Если дескриптор задан, интерпретатор команд
Cmd.exe дублирует файл в существующий дескриптор.

Для дублирования определенного пользователем дескриптора 3 в дескриптор 1 введите:

>&3

Для перенаправления всех выходных данных, включая выходные данные дескриптора 2 (STDERR), команды ipconfig в
дескриптор 1 (STDOUT) и последующего перенаправления выходных данных в Output.log введите:

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Bash Выделить код
1 ipconfig.exe>>output.log 2>&1

Использование оператора «>>» для добавления вывода

Для добавления выходных данных команды в конец файла без потери хранящейся в нем информации используется
двойной символ «больше» (>>). Например, следующая команда добавляет список каталогов, созданный командой dir, в
файл Dirlist.txt:

Bash Выделить код


1 dir>>dirlist.txt

Для добавления выходных данных команды netstat в конец файла Tcpinfo.txt введите:

Bash Выделить код


1 netstat>>tcpinfo.txt

Использование оператора канала (|)

Оператор канала «вертикальная линия» (|) забирает выходные данные одной команды (по умолчанию STDOUT) и
направляет их на вход другой команды (по умолчанию STDIN). Например, следующая команда сортирует каталог:

Bash Выделить код


1 dir | sort

В данном примере обе команды запускаются одновременно, но команда sort приостанавливает работу до получения
выходных данных команды dir. Команда sort использует выходные данные команды dir в качестве своих входных данных, а
затем свои выходные данные отправляет в дескриптор 1 (STDOUT).

Комбинирование команд с операторами перенаправления

Комбинируя команды-фильтры с другими командами и именами файлов, можно создавать команды на заказ. Например,

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
для сохранения имен файлов, содержащих строку «LOG», используется следующая команда:

Bash Выделить код


Bash Выделить код
1 dir /b | find "LOG" > loglist.txt

Выход команды dir отсылается в команду-фильтр find. Имена файлов, содержащие строку «LOG», хранятся в файле
Loglist.txt в виде списка (например, NetshConfig.log, Logdat.svd и Mylog.bat).

При использовании более одного фильтра в одной команде их необходимо отделять с помощью канала (|). Например,
следующая команда ищет в каждом каталоге диска C файлы, в названии которых присутствует строка «Log», и выводит их
постранично на экран:

Bash Выделить код

1 dir c:\ /s /b | find "LOG" | more

Наличие канала (|) указывает Cmd.exe, что выход команды dir нужно отправить команде-фильтру find. Команда find
выбирает только те имена файлов, в которых содержится строка «LOG». Команда more выводит на экран имена файлов,
полученные командой find с паузой после заполнения каждого экрана. Дополнительные сведения о командах-фильтрах см.
в разделе Использование фильтров.

А CMD выдает "Непредвиденное появление: <&."

На этом форуму нашел 2 ссылки:


http://www.rsdn.ru/article/winshell/batanyca.xml
http://www.rsdn.ru/article/winshell/NTCommandProcessor.xml

Добавлено через 1 минуту


еще одну:
http://www.windowsfaq.ru/content/category/3/19/57/

2
Jinu 21.05.2012, 10:30 9
9/9/3 1
Регистрация: 16.02.2011
Сообщений: 27
2

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
magirus 24.05.2012, 14:32 10
Почетный модератор
Сообщение было отмечено как решение

27987 / 15714 / 966


Регистрация: 15.09.2009 Решение
Сообщений: 67,815
Записей в блоге: 78 Название: Командная строка Microsoft Windows. Справочник администратора
Автор: Уильям Р. Станек

3
HOST_ERROR 11.07.2012, 02:45 11
195 / 34 / 3
Регистрация: 12.05.2010 Сообщение от Leningradeс
Сообщений: 361
Да и если знаете читабельную литературу по батникам\cmd, то буду признателен если скинете ссыль или
название (полное).

Самая лучшая литература это сама помощь cmd


напиши HELP
и далее описание команды и как ею пользоваться можно получить так: КОМАНДА /?

0
Dragokas 21.09.2012, 22:04 12

17106 / 7161 / Сообщение от Ris


862
Регистрация: Вычисление остатка
25.12.2011 set /a xy=%x% "%" %y%
Сообщений:
10,959
Записей в блоге: Что-то выдает синтаксическую ошибку.
16
Правильные варианты будут такие:
Bash Выделить код
1 set /a xy=%x%%%y%

(процент без пробелов).


При просмотре логики вычислений в интерпретаторе без отключения Эха - вторая переменная визуально не раскрывается,
хотя функционально все работает верно.
Чтобы это обойти, можно воспользоваться удвоением %

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Bash Выделить код
1 set /a xy=%x% %% %y%
Bash Выделить код

(можно и без пробелов).

0
Eva Rosalene 08.01.2013, 21:45 13
Ladybug
Помощь по всем командам вашей версии Windows / DOS
4129 / 1602 / 305
Регистрация: 06.01.2013
Сообщений: 4,194 Развврнуть код...
Завершенные тесты: 2

После запуска появятся два текстовых файла.


По ходу действия программа будет писать вам, какая команда сейчас обрабатывается.
HELP2 - список доступных вам команд.
HELP - собственно справка по каждой из них.

0
Dragokas 12.02.2013, 01:23 14

17106 / 7161 / 862 Памятка. Системные команды


Регистрация: 25.12.2011
Сообщений: 10,959
Записей в блоге: 16
Описание Команда Описание Команда

Администрирование control admintools Папка обмена clipbrd

Администратор источников данных odbccp32.cpl Проверка подписи файла sigverif

Восстановление системных файлов sfc /scannow Программа сетевого клиента SQL cliconfg

Дефрагментация дисков dfrg.msc Производительность perfmon.msc

Диспетчер проверки драйверов verifier Просмотр событий eventvwr.msc

Диспетчер служебных программ utilman Подключение к рабочему столу mstsc

Групповая политика gpedit.msc Результатирующая политика rsop.msc

Dr. Watson drwtsn32 Редактор системных файлов sysedit

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Запросы операторов съемных ОЗУ ntrnsoprq.msc Реестр regedit

Защита БД учетных записей syskey Редактор личных символов eudcedit

IExpress lexpress Сертификаты certrngr.msc

Инфраструктура управления wmimgmt.msc Служба диагностики DirectX dxdiag

Проверка дисков chkdsk Службы services.msc

Консоль управления dcomcnfg Службы компонентов dcomcnfg

Локальные параметры безопастности secpol.msc Служба индексирования ciadv.msc

Локальные пользователи и группы lusrmgr.msc Съемные ЗУ ntmsmgr.msc

Мастер передачи файлов Bluetooth fsquirt Телнет telnet

Настройка системы msconfig Управление дисками diskmgmt.msc

Назначенные задания control schedtasks Управление рабочим столом mstscoo

Общие папки fsmgmt.msc Управление компьютером compmgmt.msc

Общие ресурсы DDE ddeshare Удаление вредоносных программ mrt.exe

Некоторые из не работают в ОС Windows ver. выше XP или при отсутствии в системе необходимых компонентов.

1
Dragokas 12.02.2013, 01:26 15

cpl-файлы
17106 / 7161 / 862 Автор обзора: andi
Регистрация: 25.12.2011
Сообщений: 10,959
Записей в блоге: 16
В операционной системе Windows есть множество полезностей, о которых не все знают. Про одну такую
«полезняшку» сейчас и расскажу. Речь будет идти о так называемых cpl-файлах. Возможно, это не говорит ни о
чём. Однако с уверенностью могу сказать, что многими из этих цэпээлек пользуются регулярно.

Итак, нажимаем сочетание клавиш Win + R (Win — это кнопочка между Ctrl и Alt), либо жмём Пуск → Выполнить, и
вводим одну из следующих команд:

основные:

appwiz.cpl — установка/удаление программ


desk.cpl — свойства экрана

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
firewall.cpl — брэндмауэр
inetcpl.cpl — свойства интернет эксплорера
intl.cpl — язык и региональные стандарты
main.cpl — свойства мыши
mmsys.cpl — свойства: звуки и аудиоустройства
ncpa.cpl — сетевые подключения (отсюда можно управлять сетевыми адаптерами)
netsetup.cpl — мастер настройки сети
nusrmgr.cpl — учётные записи пользователей
sysdm.cpl — свойства системы
timedate.cpl — установка даты/времени
wscui.cpl — центр обеспечения безопасности
wuaucpl.cpl — автоматическое обновление

редко используемые

access.cpl — специальные возможности


hdwwiz.cpl — мастер установки оборудования
joy.cpl — игровые устройства
odbccp32.cpl — администратор источников данных ODBC
powercfg.cpl — управление питанием
sapi.cpl — свойства речи
telephon.cpl — опции телефона и модема

особые (зависят от установленного ПО)

ALSNDMGR.CPL — аудио-конфигурация АС 97
javacpl.cpl — панель настроек java
nvcpl.cpl — панель управления NVIDIA
nvtuicpl.cpl — управление рабочими столами (утилита от NVIDIA)
PhysX.cpl — свойства PhysX (утилита от NVIDIA)
RTSndMgr.cpl — настройка звуковых эффектов от Gigabyte

3
Dragokas 07.05.2013, 01:22 16

Сообщение было отмечено как решение


17106 / 7161 /
862
Регистрация:
25.12.2011
Решение
Сообщений: По материалам http://pers.narod.ru/soft/batfiles.html
10,959
В этой статье:

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Записей в блоге: Определение и назначение командного файла
16 Проверка, существует ли файл
Проверка кода завершения
Сравнение двух строк
Команды REM, ECHO, PAUSE, IF, ERRORLEVEL, SET, GOTO, CALL, SHIFT, FOR, CHOICE
Знак @

1. Определение командного файла.

Командные (пакетные) файлы - особая категория исполняемых файлов.

Расширение: *.bat (от англ. batch - "пакет", "группа"). Запуск командного файла осуществляется так же, как запуск
исполняемой программы, то есть, указывается имя файла и, если требуется, параметры.
Назначение: BAT-файлы служат для организации взаимодействия пользователей с прикладными программами.
Состав: текст, который интерпретируется командным процессором. Строки этого текста могут представлять собой:

внешние или внутренние команды ОС;


обращения к исполняемым программам *.COM или *.EXE, и вызовы других командных файлов;
команды для управления выдачей на экран, а также для организации ветвлений и циклов;
метки, на которые совершается переход при выполнении заданного в файле условия.

Каждая команда находится на отдельной строке.

2. Команды пакетной обработки.

а) REM комментарий в тексте файла. Обычно используют, чтобы временно убрать из текста какую-либо команду. Формат:
REM [любая строка]

б) ECHO вывод на экран сообщений. Формат: ECHO [ON или OFF или Сообщение]
Параметры ON и OFF включают и выключают выдачу на экран системных сообщений ("эха"). Команда ECHO OFF
используется, чтобы не "засорять" экран при исполнении BAT-файла. Произвольная строка после ECHO понимается как
сообщение и без изменений выводится на экран. Пустая строка обозначается одной точкой. Примеры:

Bash Выделить код


1 echo.

Перейти к следующей строке;


Bash Выделить код

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Bash Выделить код
1 echo Программа  не  найдена!

Выдает на экран сообщение "Программа не найдена!".

в) @. Может быть только первым символом строки и подавляет ее выдачу на экран. Используется только в пакетном
режиме.
Пример:
Bash Выделить код
1 @echo off

Выключаем "эхо"; из-за символа @ сама команда echo off тоже не выводится на экран; этой строкой обычно начинаются
командные файлы.

г) PAUSE приостанавливает вывод на экран, выводит сообщение "Нажмите любую клавишу..." и ждет нажатия любой
клавиши. Параметров не имеет.

д) IF позволяет проверять условие и выполнять ветвление в зависимости от результата проверки.

Общий вид команды:


IF [NOT] [условие] [действие], где "действие" - любая команда, выполняемая, если истинно условие. Условие
записывается в одной из трех форм, поэтому команда IF имеет три формата.

Формат 1. Проверка кода завершения последней перед оператором IF команды. Используется конструкция следующего
вида: IF ERRORLEVEL число

Любая программа может выработать в момент своего окончания собственный код завершения, который доступен другим
программам через переменную с именем ERRORLEVEL. Большинство команд и программ при нормальном завершении
устанавливают errorlevel=0. Задав условие if errorlevel 1, Вы определите, что оно будет выполнено, если программа
вырабатывает код завершения больший, либо равный 1.

Bash Выделить код


1 format a:
2 if errorlevel 1 echo Форматирование прошло не безупречно!

если программа format установила errorlevel больше нуля,сообщить об ошибке;

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Формат 2. Проверка наличия файла в каталоге. Оператор IF имеет вид: IF EXIST имя файла

Команда проверяет, существует ли файл с заданным именем. При обнаружении файла условие считается выполненным.
Можно использовать маску - тогда условие выполнено, если найден хотя бы один подходящий файл.

Bash Выделить код


1 if exist c:\autoexec.bat type c:\autoexec.bat

если в головном каталоге диска c: есть файл autoexec.bat, вывести его на экран;

Bash Выделить код


1 if not exist c:\WORK\*.* echo Нет файлов!

если в каталоге WORK нет ни одного файла, вывести соответствующее сообщение;

Формат 3. Сравнение двух строк. Оператор имеет вид: IF [строка_1]==[строка_2]

Условие выполняется, если строки 1 и 2 совпадают. Чтобы застраховаться от случая, когда одна из строк оказывается
пустой, обе строки заключают в одинаковые символы, например, в квадратные скобки.

Любое из этих трех условий может задаваться со знаком логического отрицания NOT. При этом истинность условия
трактуется в обратном смысле. Примеры:

Bash Выделить код


1 if %A%==Yes cls

если переменная с именем A равна строке 'Yes', очистить экран.

Аналогично команда IF может использоваться из командной строки.

е) GOTO позволяет передавать управление на заданную метку Формат команды: GOTO метка

Метка начинается со знака : Пример:

Bash Выделить код

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Bash Выделить код

1 if  %A%==Yes goto Clear


2 goto Not_Clear
3  
4 :Clear
5 cls
6  
7 :Not_Clear

Если переменная A совпадает со строкой Yes, перейти на метку Clear и очистить экран. В противном случае пропустить
очистку экрана.

ж) CALL осуществляет вызов одного командного файла из другого с последующим возвратом в вызывающий файл. Формат
команды: CALL [имя файла]

В имени вызываемого файла могут содержаться дополнительные параметры, которые обрабатываются вызванным файлом.
Пример:

Вызывающий командный файл: (example.bat)

Bash Выделить код

1 @echo off
2 echo Файл запущен!
3 call version
4 echo Продолжаем!

Вызываемый командный файл: (version.bat)

Bash Выделить код


1 @echo off
2 echo Ваша версия операционной системы:
3 ver
4 pause

example.bat вызывает version.bat, после выполнения которого вновь получает управление.

з) Переменные в командных файлах используются для обмена информацией между отдельными командами. Существуют

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
два их вида:

1) переменная, определяемая в цикле. Ее имя состоит символа процента (в старых версиях DOS/Windows - двух
символов) и последующих букв, например, %A. Набор значений, которые последовательно принимает такая переменная,
задается при ее определении в команде for (см. ниже).

2) переменная окружения. Она определяется внутренней командой DOS вида

Bash Выделить код


1 SET имя=значение

где имя и значение - произвольные строки, и в течение всего сеанса работы хранится в специальной области памяти,
называемой "системным окружением". Системное окружение управляется командным интерпретатором command.com.
Чтобы использовать переменную окружения в командном файле нужно ее имя заключить в символы процента %,
например, командами

Bash Выделить код


1 set weekday=sunday
2 echo %weekday%

переменной с именем weekday присваивают значение sunday и выводят ее значение на экран командой ECHO.
Для удаления переменной из окружения используют строку вида
Bash Выделить код
1 set имя=

Для просмотра окружения можно использовать команду SET без параметров.

В DOS и Windows, как правило, используются следующие стандартные переменные окружения:

winbootdir Главный каталог ОС Windows (в версиях NT/2000 может называться SystemRoot)


COMSPEC Полное имя текущего командного процессора
PROMPT Вид строки приглашения диалогового режима
TEMP Каталог для временных файлов (иcпользуется также TMP)
PATH Список путей, по которым ищутся исполняемые программы, если путь не указан при запуске программы. По
умолчанию программа ищется сначала в текущей папке, затем в папках, перечисленных в PATH. Пути разделяются
символом ;

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
и) FOR обеспечивает циклическое выполнение команд.
Формат:
Bash Выделить код

1 FOR переменная IN (набор) DO действие

Понятие переменной определено выше.


Набор - это одна или несколько строк, разделенных пробелами или запятыми. Чаще всего в качестве элементов набора
выступают имена файлов или маски.
Действие - любая допустимая команда. Цикл работает следующим образом: переменная последовательно принимает
значения элементов набора и они подставляются в текст команды.
Примеры:

Bash Выделить код

1 For %a in (*.txt) do copy %a con

Переменной %%a последовательно присваиваются имена файлов с расширением txt из текущего каталога и каждый файл
выводится на экран.

Bash Выделить код

1 for %r in (*.*) do if exist a:\%r echo %r есть на диске a:

Команда перебирает файлы текущей директории и выясняет, есть ли на диске a: файл с таким же именем. Если такой
файл существует, печатается сообщение. Вместо переменной %%r в команде ECHO каждый раз подставляется очередное
имя файла.

Bash Выделить код


1 for %z in (0,1,2,3,4,5,6,7,8,9) do if %z==%test% echo z=test=%z

Если переменная %z, принимающая значения цифр от 0 до 9, совпадает с переменной окружения test, печатается
сообщение.

FOR может использоваться и в командной строке, например, для многократного выполнения команды, в которой нельзя
использовать маску. Пример:

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Bash Выделить код
1 FOR %A IN (*.txt) DO TYPE %A

Все найденные в текущей директории файлы с расширением TXT последовательно выводятся на экран.

к) Параметры командного файла.

При запуске из командной строки командному файлу могут быть переданы параметры. Они разделяются пробелами и
количество их не может превышать девяти. Изнутри пакетного файла параметры доступны через строки вида %0, %1, ...,
%9, где %0 - имя самого командного файла, %1 - имя первого параметра и так далее. Например, мы запускаем командный
файл MOVA.BAT командой mova.bat *.tmp *.txt *.doc

После запуска параметр %0 равен строке "mova.bat", параметр %1 - строке "*.tmp" и т. д.


Наш командный файл должен перемещать файлы, подходящие под переданные ему маски, на диск a:. Для первого
параметра это легко сделать двумя командами:
Bash Выделить код
1 copy %1 a:\%1
2 del %1

Первая копирует файлы на диск a:, вторая уничтожает источник копирования. Для второго параметра мы могли бы
повторить те же команды, подставив в них %2 вместо %1. Но программа сразу же становится нерациональной, тем более,
что число параметров заранее неизвестно.
Помочь нам может команда SHIFT, которая сдвигает параметры командного файла на один влево. После применения
SHIFT параметру %0 присваивается старое значение %1, в нашем случае это строка "*.tmp", а параметр %1 принимает
значение "*.txt". Теперь этими же двумя командами мы можем обработать любое число параметров. Позаботившись об
условии выхода из программы, получаем ее окончательный текст:

Bash Выделить код


1 @echo off
2 :LOOP
3 copy %1 a:\%1
4 del %1
5 shift
6 if not [%1]==[] goto LOOP
Bash Выделить код

Благодаря команде SHIFT мы каждый раз обращаемся лишь к первому из переданных параметров и правильность работы
не зависит от числа переданных параметров. Если очередная строка с маской не пуста, оператор goto LOOP передает

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
управление к началу программы.

л) Дополнительные средства для написания командных файлов.

Рассмотренные выше команды пакетной обработки позволяют организовать автоматический запуск программ и обработку
файлов. Не хватает лишь возможностей пользователя влиять на этот процесс, в частности, возможности выполнять
действия в зависимости от выбора с клавиатуры.

В состав большинства версий DOS/Windows включена внешняя команда choice, служащая для выбора действия. Формат
команды:

CHOICE [/C:клавиши] [/N] [/T:выбор,время] [сообщение]

Здесь сообщение - любая строка текста, клавиши - список буквенных обозначений клавиш, допустимых для выбора. По
умолчанию прописные и строчные буквы не различаются, а если список клавиш не указан, принимается /C:YN. Параметр
/N запрещает вывод после сообщения списка клавиш и знака вопроса, а после параметра /T могут быть указаны выбор,
принимаемый при отсутствии ввода с клавиатуры и время в секундах, через которое он будет сделан.

Результат работы команды - установка значения ERRORLEVEL равным порядковому номеру в списке выбранной
клавиши. Например, после ввода команды

Bash Выделить код


1 choice /c:01 /n /t:0,5 Продолжить?(1-да,0-нет)

значение ERRORLEVEL будет установлено в 1 при нажатии клавиши 0 или отсутствии ввода с клавиатуры в течении 5
секунд,
а при нажатии клавиши 1 программа установит значение ERRORLEVEL, равное 2.

4
07.05.2013, 01:22

07.05.2013, 01:22
Answers
Эксперт
37091 / 29110 / 5898 Запись команд из одного bat-файла в другой bat-файл
Регистрация: 17.06.2006
Сообщений: 43,301 Предположил что: в 1 bat: echo echo my_text &gt;&gt; my_file &gt;&gt; new.bat и хотел что бы получилось так...

Литература по windows 7, учебники и пособия для начинающих администраторов


Доброго времени суток Нигде не могу скачать Microsoft Windows 7. Полное руководство, Пол...

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Пособия и литература по сетям
ребят а подскажите пожалуйста какие-нибудь хорошие книжки, учебники или пособия по компьютерным...

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:

Найти

16

КиберФорум - форум программистов, компьютерный форум, программирование Реклама - Обратная связь

Powered by vBulletin® Version 3.8.9


Copyright ©2000 - 2019, vBulletin Solutions, Inc.

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD