О командной строке, часть 3 (bat, cmd)
help
Для получения подробных сведений о любой команде введите HELP имя_команды.
ASSOC Вывод либо изменение сопоставлений по
расширениям имен файлов.
AT Выполнение команд и запуск программ по
расписанию.
ATTRIB Отображение и изменение атрибутов файлов.
BREAK Включение/выключение режима обработки
комбинации клавиш CTRL+C.
CACLS Отображение/редактирование списков
управления доступом (ACL)
к файлам.
CALL Вызов одного пакетного файла из другого.
CD Вывод имени либо смена текущей папки.
CHCP Вывод либо установка активной кодовой
страницы.
CHDIR Вывод имени либо смена текущей папки.
CHKDSK Проверка диска и вывод статистики.
CHKNTFS Отображение или изменение выполнения проверки
диска во время загрузки.
CLS Очистка экрана.
CMD Запуск еще одного интерпретатора
командных строк Windows
2000.
COLOR Установка цвета текста и фона, используемых
по умолчанию.
COMP Сравнение содержимого двух файлов или двух
наборов файлов.
COMPACT Отображение/изменение сжатия файлов в
разделах NTFS.
CONVERT Преобразование дисковых томов FAT в NTFS. Нельзя выполнить
преобразование текущего активного
диска.
COPY Копирование одного или нескольких файлов в
другое место.
DATE Вывод либо установка текущей даты.
DEL Удаление одного или нескольких файлов.
DIR Вывод списка файлов и подпапко из
указанной папки.
DISKCOMP
Сравнение содержимого двух гибких дисков.
DISKCOPY
Копирование содержимого одного гибкого диска на другой.
DOSKEY Редактирование и повторный вызов командных
строк; создание макросов.
ECHO Вывод сообщений и переключение режима
отображения команд на экране.
ENDLOCAL
Конец локальных изменений среды для пакетного файла.
ERASE Удаление одного или нескольких файлов.
EXIT Завершение работы программы CMD.EXE (интерпретатора командных строк).
FC Сравнение двух файлов или двух наборов
файлов
и вывод различий между ними.
FIND Поиск текстовой строки в одном или
нескольких файлах.
FINDSTR Поиск строк в файлах.
FOR Запуск указанной команды для каждого из
файлов в наборе.
FORMAT Форматирование диска для работы с Windows 2000.
FTYPE Вывод либо изменение типов файлов,
используемых при сопоставлении по
расширениям имен файлов.
GOTO Передача управления в отмеченную строку
пакетного файла.
GRAFTABL
Позволяет Windows
2000 отображать расширенный набор символов
в графическом режиме.
HELP Выводит справочную информацию о командах Windows 2000.
IF Оператор условного выполнения команд в
пакетном файле.
LABEL Создание, изменение и удаление меток тома
для дисков.
MD Создание папки.
MKDIR Создание папки.
MODE Конфигурирование системных устройств.
MORE Последовательный вывод данных по частям
размером в один экран.
MOVE Перемещение одного или нескольких файлов
из одной папки в другую.
PATH Вывод либо установка пути поиска
исполняемых файлов.
PAUSE Приостановка выполнения пакетного файла и
вывод сообщения.
POPD Восстановление предыдущего значения
текущей активной папки,
сохраненного с помощью команды PUSHD.
PRINT Вывод на печать содержимого текстовых
файлов.
PROMPT Изменение приглашения в командной строке Windows 2000.
PUSHD Сохранение значения текущей активной папки
и переход
к другой папке.
RD Удаление папки.
RECOVER Восстановление читаемой информации с плохого
или поврежденного диска.
REM Помещение комментариев в пакетные файлы и
файл CONFIG.SYS.
REN Переименование файлов и папок.
RENAME Переименование файлов и папок.
REPLACE Замещение файлов.
RMDIR Удаление папки.
SET Вывод, установка и удаление переменных
среды Windows
2000.
SETLOCAL
Начало локальных изменений среды для пакетного файла.
SHIFT Изменение содержимого (сдвиг) подставляемых
параметров
для пакетного файла.
SORT Сортировка ввода.
START Запуск программы или команды в отдельном
окне.
SUBST Сопоставляет заданному пути имя диска.
TIME Вывод и установка системного времени.
TITLE Назначение заголовка окна для текущего
сеанса
интерпретатора командных строк CMD.EXE.
TREE Графическое отображение структуры папок
заданного диска
или заданной папки.
TYPE Вывод на экран содержимого текстовых
файлов.
VER Вывод сведений о версии Windows 2000.
VERIFY Установка режима проверки правильности
записи файлов на диск.
VOL Вывод метки и серийного номера тома для
диска.
XCOPY Копирование файлов и дерева папок.
if
Оператор условного выполнения команд в пакетном файле.
IF [NOT] ERRORLEVEL число команда
IF
[NOT]
строка1==строка2 команда
IF [NOT] EXIST имя_файла команда
NOT Обращает истинность условия:
истинное условие
становится ложным, а ложное
- истинным.
ERRORLEVEL число Условие является
истинным, если код возврата последней
выполненной программы не
меньше указанного числа.
строка1==строка2 Это условие является истинным, если указанные
строки
совпадают.
EXIST имя_файла Это условие
является истинным, если файл с указанным
именем существует.
команда Задает команду, выполняемую при
истинности условия.
За этой командой может следовать
ключевое слово ELSE,
служащее для указания
команды, которая должна
выполняться в том случае,
если условие ложно.
Предложение
ELSE должно
располагаться в той же строке, что и команда,
следующая
за ключевым словом IF. Например:
IF EXIST имя_файла. (
del имя_файла.
) ELSE (
echo
имя_файла. missing.
)
Следующий
пример содержит ОШИБКУ, поскольку команда del должна
заканчиваться
переходом на новую строку:
IF EXIST имя_файла. del имя_файла. ELSE
echo имя_файла. missing
Следующий
пример также содержит ОШИБКУ, поскольку команда ELSE должна
Располагаться
в той же строке, что и команда, следующая за IF:
IF EXIST имя_файла. del имя_файла.
ELSE echo
имя_файла. missing
Вот правильный
пример, где все команды расположены в одной строке:
IF EXIST имя_файла. (del имя_файла.)
ELSE echo имя_файла. missing
Изменение
команды IF
при включении расширенной обработки команд:
IF [/I]
строка1 оператор_сравнения строка2 команда
IF CMDEXTVERSION число команда
IF DEFINED переменная команда
где
оператор_сравнения принимает следующие значения:
EQL - равно
NEQ - не равно
LSS - меньше
LEQ - меньше или равно
GTR - больше
GEQ - больше или равно
а ключ /I, если он указан, задает сравнение
текстовых строк без учета
регистра. Ключ /I можно также использовать и в форме
строка1==строка2
команды IF.
Сравнения проводятся по общему типу данных, так что если
строки 1 и
2 содержат только цифры, то обе строки преобразуются в числа,
после чего
выполняется сравнение чисел.
Условие CMDEXTVERSION применяется подобно условию ERRORLEVEL, но значение
сравнивается
с внутренним номером версии текущей реализации расширенной
обработки
команд. Первая версия имеет номер
1. Номер версии будет
увеличиваться
на единицу при каждом добавлении существенных возможностей
расширенной
обработки команд. Если расширенная
обработка команд отключена,
условие CMDEXTVERSION никогда не бывает истинно.
Условие DEFINED применяется подобно условию EXISTS, но принимает в качестве
аргумента
имя переменной среды и возвращает истинное значение, если эта
переменная
определена.
Строка %ERRORLEVEL% будет развернута в строковое
представление текущего
значения
кода ошибки ERRORLEVEL, за исключением ситуации, когда уже имеется
переменная
среды с именем ERRORLEVEL; в подобном случае
подставляется
значение
этой переменной. Например, с помощью
данной строки можно выполнить
следующее:
goto
answer%ERRORLEVEL%
:answer0
echo Получен код возврата 0
:answer1
echo Получен код возврата 1
Допускается
и применение описанных выше операторов числового сравнения:
IF %ERRORLEVEL% LEQ 1 goto okay
Строка %CMDCMDLINE% будет развернута в исходную
командную строку, переданную
CMD.EXE до любой обработки, за исключением
ситуации, когда уже определена
переменная
среды с именем CMDCMDLINE, в подобном случае
подставляется
значение
этой переменной.
Строка %CMDEXTVERSION% будет развернута в строку,
представляющую собой
текущее
значение CMDEXTVERSION, за исключением ситуации, когда уже имеется
переменная
среды с именем CMDEXTVERSION; в подобном случае
подставляется
значение
этой переменной.
label
Создание, изменение и удаление меток тома для дисков.
LABEL
[диск:][метка]
LABEL
[/MP] [том]
[метка]
диск: Определяет букву диска.
метка Определяет метку тома.
/MP Определяет
точку подключения тома, или
имя тома.
том Определяет букву диска (с
последующим двоеточием),
точку подключения или имя
тома. Если указано имя тома,
флаг /MP необязателен.
md
Создание каталога.
MKDIR
[диск:]путь
MD
[диск:]путь
Изменение
команды MKDIR
при включении расширенной обработки команд:
Команда MKDIR создает при необходимости все
промежуточные каталоги в пути.
Например,
если \a
не существует, то:
mkdir \a\b\c\d
приводит к
тому же результату, что и:
mkdir \a
chdir \a
mkdir b
chdir b
mkdir c
chdir c
mkdir d
При
отключении расширенной обработки команд используется только второй вариант.
mkdir
Создание каталога.
MKDIR
[диск:]путь
MD
[диск:]путь
Изменение
команды MKDIR
при включении расширенной обработки команд:
Команда MKDIR создает при необходимости все
промежуточные каталоги в пути.
Например,
если \a
не существует, то:
mkdir \a\b\c\d
приводит к
тому же результату, что и:
mkdir \a
chdir \a
mkdir b
chdir b
mkdir c
chdir c
mkdir d
При
отключении расширенной обработки команд используется только второй вариант.
mode
Настройка системных устройств.
Последовательный порт: MODE COMm[:] [BAUD=b] [PARITY=p] [DATA=d]
[STOP=s]
[to=on|off] [xon=on|off] [odsr=on|off]
[octs=on|off] [dtr=on|off|hs]
[rts=on|off|hs|tg] [idsr=on|off]
Состояние
устройства: MODE [устройство]
[/STATUS]
Переадресация
печати: MODE LPTn[:]=COMm[:]
Выбор
кодовой страницы: MODE CON[:] CP
SELECT=yyy
Вывод
кодовой страницы: MODE CON[:] CP
[/STATUS]
Режим работы экрана: MODE
CON[:] [COLS=c] [LINES=n]
Ввод с клавиатуры:
MODE CON[:] [RATE=r DELAY=d]
more
Последовательный вывод данных по частям размером в один экран.
MORE [/E
[/C] [/P] [/S] [/Tn] [+n]] < [диск:][путь]имя_файла
имя_команды | MORE [/E
[/C] [/P] [/S] [/Tn] [+n]]
MORE /E [/C] [/P] [/S] [/Tn] [+n] [файлы]
[диск:][путь]имя_файла Файл, отображаемый
по фрагментам.
имя_команды Команда, вывод которой
отображается на экране.
/E
Разрешение использования дополнительных возможностей.
/C
Очистка экрана перед выводом каждой страницы.
/P
Учет символов перевода страницы.
/S
Сжатие нескольких пустых строк в одну строку.
/Tn
Замена символов табуляции n пробелами (по умолчанию n = 8).
Стандартный набор ключей можно
поместить
в переменную среды MORE.
+n
Начало вывода первого файла со строки с номером n.
файлы
Список отображаемых файлов. Для разделения имен файлов
в списке используйте пробелы.
Если использование дополнительных
возможностей разрешено, в ответ
на приглашение -- More -- можно вводить
следующие команды:
P n
Вывод следующих n строк.
S n
Пропуск следующих n строк.
F
Вывод следующего файла.
Q
Завершение работы.
=
Вывод номера строки.
?
Вывод строки подсказки.
<пробел> Вывод следующей страницы.
<ENTER> Вывод следующей строки.
move
Перемещение файлов и переименование файлов и папок
Перемещение
одного или более файлов:
MOVE [/Y |
/-Y] [диск:][путь]имя_файла1[,...] назначение
Переименование
папки:
MOVE [/Y |
/-Y] [диск:][путь]имя_папки новое_имя_папки
[диск:][путь]имя_файла1 Определяет
местоположение файла или файлов, которые
необходимо
переместить.
Назначение Определяет новое местоположение
файла. Назначение
может состоять из
буквы диска (с последующим
двоеточием), имени
папки или их комбинации. При
перемещении только
одного файла, можно указать и его
новое имя, если
хотите выполнить его одновременное
переименование при перемещении.
[диск:][путь]имя_папки Определяет папку, которую необходимо
переименовать.
новое_имя_папки Определяет новое имя папки.
/Y Перезаписывать
существующие файлы назначения без
предупреждения.
/-Y Предупреждать при
перезаписи существующего файла
назначения.
Ключ /Y
может присутствовать в значении переменной среды окружения COPYCMD.
Оно может
перекрываться ключом /-Y в командной строке. По умолчанию
используется
предупреждение о перезаписи, если только команда MOVE не выполняется как часть
пакетного файла.
path
Вывод или задание пути поиска исполняемых файлов.
PATH [[диск:]путь[;...][;%PATH%]
PATH ;
Команда PATH
; очищает путь поиска используемых файлов, ограничив его
текущим
каталогом.
Команда
PATH без параметров отображает текущий путь поиска.
При
включении в командную строку переменной %PATH% прежний путь поиска
добавляется
в конец нового.
pause
Приостановка
выполнения пакетного файла и вывод сообщения:
Для продолжения нажмите любую клавишу . . .
popd
Переходит в каталог, сохраненный командой PUSHD.
POPD
Когда
расширенная обработка команд включена, команда POPD удаляет временные
имена
дисков, созданные командой PUSHD для сетевых ресурсов, при удалении
соответствующего
диска из стека каталогов.
print
Печать текстового файла.
PRINT
[/D:устройство] [[диск:][путь]имя_файла[...]]
/D:устройство Устройство для печати.
prompt
Изменение приглашения командной строки cmd.exe.
PROMPT
[текст]
текст
Новое приглашение командной строки.
Приглашение
может включать обычные символы и следующие коды:
$A
& (амперсанд)
$B |
(вертикальная черта)
$C (
(левая круглая скобка)
$D
Текущая дата
$E
ESC (символ ASCII с кодом 27)
$F )
(правая круглая скобка)
$G
> (знак "больше")
$H
BACKSPACE (удаление предыдущего символа)
$L
< (знак "меньше")
$N
Текущий диск
$P
Текущие диск и каталог
$Q =
(знак равенства)
$S
(пробел)
$T
Текущее время
$V
Номер версии Windows 2000
$_
Возврат каретки и перевод строки
$$ $
(символ доллара)
Когда
расширенная обработка команд включена, команда PROMPT поддерживает
следующие
дополнительные символы форматирования:
$+ Отображение
нужного числа знаков плюс (+) в зависимости от текущей
глубины стека каталогов PUSHD, по одному
знаку на каждый сохраненный
путь.
$M
Отображение полного имени удаленного диска, связанного с именем
текущего диска, или пустой строки, если
текущий диск не является
pushd
Сохраняет текущий каталог для использования командой POPD, а затем переходит в указанный каталог.
PUSHD [путь
| ..]
путь
Каталог, который следует назначить текущим.
Когда
расширенная обработка команд включена, команда PUSHD допускает ввод
сетевых
путей в дополнение к обычным именам дисков и путям.
Если указан
сетевой путь, команда PUSHD создает временное имя диска,
указывающее
на заданный сетевой ресурс, а затем производит смену текущего
диска и каталога,
используя вновь определенное имя диска.
Выделение
временных имен дисков проводится в обратном порядке начиная
с Z:,
причем выбирается первое свободное имя диска.
rd
Удаление
каталога.
RMDIR [/S] [/Q] [диск:]путь
RD [/S]
[/Q] [диск:]путь
/S Удаление дерева каталогов, т. е. не только
указанного каталога,
но и всех содержащихся в нем файлов
и подкаталогов.
/Q
Отключение запроса подтверждения при удалении дерева каталогов
с помощью ключа /S.
recover
Восстановление сохранившихся данных на поврежденном диске.
RECOVER
[диск:][путь]имя_файла
Перед
использованием команды RECOVER познакомьтесь с ее описанием,
приведенном
в справочной системе Windows 2000.
rem
Помещение комментариев в пакетные файлы и файл CONFIG.SYS.
REM [текст]
ren
Переименование одного или нескольких файлов.
RENAME
[диск:][путь]имя_файла1 имя_файла2.
REN
[диск:][путь]имя_файла1 имя_файла2.
Для
конечного файла нельзя указать другой диск или каталог.
rename
Переименование одного или нескольких файлов.
RENAME
[диск:][путь]имя_файла1 имя_файла2.
REN
[диск:][путь]имя_файла1 имя_файла2.
Для
конечного файла нельзя указать другой диск или каталог.
replace
Замена файлов.
REPLACE
[диск1:][путь1]имя_файла [диск2:][путь2] [/A] [/P] [/R] [/W]
REPLACE
[диск1:][путь1]имя_файла [диск2:][путь2] [/P] [/R] [/S] [/W] [/U]
[диск1:][путь1]имя_файла Один или несколько
исходных файлов.
[диск2:][путь2] Каталог, в котором следует заменить
файлы.
/A Добавление новых файлов в конечный каталог.
Этот ключ
несовместим с ключами /S и /U.
/P Вывод запроса перед
заменой или
добавлением файла.
/R Разрешение замены
файлов, предназначенных
только для чтения
(среди прочих).
/S Замена файлов во всех
подкаталогах
конечного каталога.
Этот ключ
несовместим с ключом /A.
/W Ожидание вставки диска
перед началом выполнения.
/U Замена только файлов,
более старых, чем исходные.
Этот ключ
несовместим с ключом /A.
rmdir
Удаление каталога.
RMDIR [/S] [/Q] [диск:]путь
RD [/S]
[/Q] [диск:]путь
/S
Удаление дерева каталогов, т. е. не только указанного каталога,
но и всех содержащихся в нем файлов
и подкаталогов.
/Q
Отключение запроса подтверждения при удалении дерева каталогов
с помощью ключа /S.
set
Вывод, задание и удаление переменных среды cmd.exe.
SET
[переменная=[строка]]
переменная
Имя переменной среды.
строка
Строка символов, присваиваемая указанной переменной.
Введите SET
без параметров для вывода текущих переменных среды.
Изменение
команды SET при включении расширенной обработки команд:
Если при
вызове указать только имя переменной без знака равенства и значения,
команда SET
выведет значения всех переменных, имя которых начинается
с указанной
строки. Например:
SET P
Эта команда
выведет значения всех переменных, имена которых начинаются с 'P'.
Если имя
переменной не найдено в текущей среде, при возврате команда SET
установит
значение ошибки ERRORLEVEL 1.
Команда SET
не допускает использование знака равенства в имени
переменной
среды.
Команда SET
поддерживает два дополнительных ключа:
SET /A выражение
SET /P
variable=[promptString]
Ключ /A
указывает, что строка справа от знака равенства является числовым
выражением,
значение которого вычисляется.
Обработчик выражений очень
прост и
поддерживает следующие операции, перечисленные в порядке убывания
приоритета:
() - группировка
* / % - арифметические операторы
+ - - арифметические операторы
<< >> - двоичный сдвиг
& - двоичное И
^ - двоичное исключающее ИЛИ
| - двоичное ИЛИ
= *= /= %= += -= - присвоение
&= ^= |= <<= >>=
, - разделитель операторов
При
использовании любых логических или двоичных операторов необходимо
заключить
строку выражения в кавычки. Любые
нечисловые строки в выражении
рассматриваются
как имена переменных среды, значения которых преобразуются
в числовой
вид перед использованием. Если
переменная с указанным именем
не
определена в системе, вместо нее подставляется нулевое значение. Это
позволяет
выполнять арифметические операции со значениями переменных среды,
причем не
нужно вводить знаки % для получения значений.
Если команда
SET /A
вызывается из командной строки, а не из пакетного файла, она выводит
окончательное
значение выражения. Слева от любого
оператора присваивания
должно
стоять имя переменной среды. Числовые
значения рассматриваются как
десятичные,
если перед ними не стоит префикс 0x для шестнадцатеричных чисел,
и 0 для
восьмеричных чисел. Например, числа
0x12,
и 022
обозначают десятичное число 18. Обратите
внимание на запись
восьмеричных
числе: 08 и 09 не являются допустимыми числами, так как в
восьмеричной
системе исчисления цифры 8 и 9 не используются.
Ключ /P
позволяет установить значение переменной для входной строки, введенной
пользователем. Показывает указанное приглашение promptString
перед чтением
введенной
строки. Приглашение promptString может
быть пустым.
Подстановка
переменной среды может быть расширена следующим образом:
%PATH:str1=str2%
расширит
действие переменной среды PATH, заменяя каждое вхождение "str1" в
расширенном
результате на "str2". "str2" может быть пустой строкой для
эффективного
удаления вхождений "str1" из расширенного вывода. "str1"
может
начинаться
со звездочки, и в этом случае это будет соответствовать любому
началу
расширенного вывода до первого вхождения оставшейся части str1.
Можно также
использовать строки расширения.
%PATH:~10,5%
расширит
действие переменной среды PATH, затем использует только 5
символов,
которые начинаются с 11-го символа (пропустив 10) расширенного
результата. Если длина не указана, по умолчанию
используется оставшееся
значение
переменной. Если оба значения (длина и
число пропускаемых символов)
отрицательны,
следующим используемым значением будет длина значения переменной
среды,
добавленной к указанному значению пропуска или указанной длины.
%PATH:~-10%
извлечет
последние 10 символов переменной PATH.
%PATH:~0,-2%
извлечет
все символы переменной PATH, за исключением 2-х последних.
Наконец,
добавлена поддержка связывания времени выполнения для переменных среды
окружения.
По умолчанию эта поддержка отключена. Ключ /V командной строки
CMD.EXE
позволяет включать и выключать ее. Для вызова справки, наберите CMD /?
Связывание
времени выполнения для переменных среды окружения полезно при обходе
Ограничений
раннего связывания, которое происходит при первом чтении текстовой
строки, а
не при ее выполнении. Следующий пример демонстрирует возникающую
проблему
при использовании раннего связывания переменных:
set VAR=before
if
"%VAR%" == "before" (
set
VAR=after;
if "%VAR%" ==
"after" @echo Тело внутреннего оператора сравнения
)
Данное
сообщение не буде выводиться, т.к. %VAR% в ОБОИХ выражениях IF
подставляется
в момент первого использования в первом IF, в том числе и в тело
первого
ветвления IF, которое является составным выражением. В IF внутри
составного
выражения в действительности сравниваются значения "before" и
"after",
что заведомо ложно. Следующий пример подобной ошибки:
set LIST=
for %i in
(*) do set LIST=%LIST% %i
echo %LIST%
в котором
никогда не будет построен список файлов текущей директории. Вместо
этого,
значением переменной LIST будет имя последнего найденного файла.
И вновь,
это случилось потому, что %LIST% подставляется всего один раз -
в момент
обработки выражения FOR, когда список еще пуст.
Фактически
приведенный фрагмент эквивалентен следующему:
for %i in (*) do set LIST= %i
который
сохраняет имя последнего найденного файла в переменной LIST.
Связывание
времени выполнения для переменных среды окружения происходит при
использовании
специального символа (восклицательного знака), обозначающего
проведение
сопоставления во время выполнения. Если включена поддержка связывания
времени
выполнения, то для достижения ожидаемых результатов приведенные выше
фрагменты
должны быть переписаны следующим образом:
set VAR=before
if
"%VAR%" == "before" (
set
VAR=after
if
"!VAR!" ==
"after" @echo Тело внутреннего оператора сравнения
)
set LIST=
for %i in
(*) do set LIST=!LIST! %i
echo %LIST%
При
включенной расширенной обработке команд доступны несколько переменных
среды,
которые не отображаются в списке, отображаемом при вызове команды SET.
Значения
этих переменных вычисляются динамически каждый раз при их извлечении.
Если
пользователь явно задает переменные с одним из этих имен,
то это
определение перекрывает соответствующее динамическое определение,
описанное
ниже:
%CD% -
раскрывается в строку текущей директории.
%DATE% -
раскрывается в текущую дату, используя тот же формат команды DATE.
%TIME% -
раскрывается в текущую дату, используя формат команды TIME.
%RANDOM% -
раскрывается в случайное десятичное число между 0 и 32767.
%ERRORLEVEL%
- раскрывается в текущее значение ERRORLEVEL
%CMDEXTVERSION%
- раскрывается в текущее значение версии
расширенной обработки команд.
%CMDCMDLINE%
- раскрывается в исходную командную строку, которая вызвала
командный
процессор.
setlocal
Начало локализации изменений среды в пакетном файле.
Изменения
среды, внесенные после выполнения команды SETLOCAL, являются локальными
относительно
текущего пакетного файла. Для восстановления их прежних
значений
необходимо выполнить команду ENDLOCAL. При достижении
конца
пакетного файла автоматически выполняется команда ENDLOCAL для
всех
действующих команд SETLOCAL, выполненных в этом пакетном файле.
SETLOCAL
Изменение
команды SETLOCAL при включении расширенной обработки команд:
Команда
SETLOCAL принимает необязательный аргументы:
ENABLEEXTENSIONS или
DISABLEEXTENSIONS. Это позволяет
включить
или отключить расширенную обработку команд до выполнения команды. См.
CMD /? для подробного объяснения.
ENABLEDELAYEDEXPANSION /
DISABLEDELAYEDEXPANSION
включает или отключает отложенное
расширение
переменной среды. См. SET /? для подробного объяснения.
Эти
изменения действуют до совпадения команды ENDLOCAL, независимо от исходного
состояния
до вызова команды SETLOCAL.
Если
команда SETLOCAL вызывается с аргументом, она устанавливает код ошибки
ERRORLEVEL. Если указан один из двух допустимых
аргументов, код ошибки будет
равен нулю,
иначе возвращается значение 1. Это
свойство можно использовать в
пакетных
файлах, чтобы определить доступность расширенной обработки команд,
например:
VERIFY OTHER
2>nul
SETLOCAL
ENABLEEXTENSIONS
IF ERRORLEVEL 1 echo Не удается включить расширенную обработку
Эта группа
команд работает, так как в прежних версиях CMD.EXE команда SETLOCAL
не
устанавливает значение ERRORLEVEL. Команда VERIFY с недопустимым аргументом
необходима
для установки ненулевого значения ERRORLEVEL.
shift
Изменение содержимого (сдвиг) подставляемых параметров для пакетного файла.
SHIFT [/n]
Команда
SHIFT при включении расширенной обработки команд поддерживает ключ
/n,
задающий начало сдвига параметров с номера n, где n может быть от 0 до 9.
Например, в
следующей команде:
SHIFT /2
%3
заменяется на %2, %4 на %3 и т.д., а %0 и %1 остаются без изменений.
sort
SORT [/R] [/+n] [/M килобайтов] [/L язык] [/RE recordbytes]
[[диск1:][путь1]имя_файла1] [/T
[диск2:][путь2]]
[/O [диск3:][путь3]имя_файла3]
/+n Задает число символов,
n, до начала каждого
сравнения. /+3
показывает, что каждое
сравнение будет
начинаться с третьего символа
каждой строки. Строки
меньше чем n символов
собираются перед
всеми остальными строками.
По умолчанию,
сравнение начинается с первого
символа каждой
строки.
/L[OCALE] язык Перекрывает установленные в
системе по умолчанию
язык и раскладку
заданными. Пока существует
возможность
только одного выбора: ""C"" -
наиболее быстрый способ
упорядочивания
последовательности.
Сортировка всегда
идет без учета регистра.
/M[EMORY] килобайтов Задает количество основной памяти,
используемой
для сортировки, в
килобайтах. Размер памяти должен
быть не менее
160КБ. При явном задании размера
памяти именно это
количество будет использовано,
невзирая на то, какое количество
основной памяти
доступно в
системе.
Наилучшей
производительности можно добиться, не
задавая размер
памяти. По умолчанию, сортировка
выполняется за
один проход (без временного файла),
используя
максимально доступный размер памяти. В
остальных
случаях, сортировка выполняется за два
прохода (с сохранением
частично отсортированных
данных во
временном файле), так что количество
памяти,
используемой для обоих проходов, -
одинаково. По
умолчанию, максимальный объем памяти
равен 90%
доступной основной памяти, если входными
и выходными
потоками являются файлы на диске,
и 45% доступной
основной памяти - иначе.
/REC[ORD_MAXIMUM] символов Определяет максимальной число символов в
записи
(по умолчанию
4096, максимально возможное 65535).
/R[EVERSE] Обратный порядок сортировки;
т.е. сортировка идет
от Я до А, и
затем от 9 до 0.
[диск1:][путь1]имя_файла1 Определяет имя сортируемого файла. Если оно
опущено, то будет
использоваться стандартный поток
ввода. Явное
задание сортируемого файла работает
быстрее, чем
перенаправление того же файла в
качестве
стандартного потока ввода.
/T[EMPORARY]
[диск2:][путь2] Определяет путь к папке, содержащей
рабочие файлы
сортировки, в том
случае, когда данные не
помещаются в
основной памяти. По умолчанию
используется
системная временная папка.
/O[UTPUT]
[диск3:][путь3]имя_файла3 Определяет имя
файла, в котором сохраняются
отсортированные
результаты. Если оно опущено
данные
записываются в стандартный поток вывода.
Явное задание
файла вывода работает быстрее чем
перенаправление
стандартного потока вывода
в этот же файл.
start
Запуск указанной программы или команды в отдельном окне.
START ["заголовок"] [/Dпуть] [/I]
[/MIN] [/MAX] [/SEPARATE | /SHARED]
[/LOW |
/NORMAL | /HIGH | /REALTIME| /ABOVENORMAL | /BELOWNORMAL]
[/WAIT] [/B]
[команда/программа] [параметры]
"заголовок" Заголовок окна.
путь
Рабочий каталог.
B
Запуск приложения без создания нового окна с отключением
обработки сочетания клавиш ^C.
Если приложение не
обрабатывает сочетание клавиш
^C самостоятельно,
единственным способом его
прерывания является
использование сочетания клавиш ^Break.
I
Новой средой станет исходная среда, переданная
cmd.exe, а не текущая среда.
MIN
Запуск команды/программы в свернутом окне.
MAX
Запуск команды/программы в развернутом окне.
SEPARATE
Запуск 16-разрядной программы Windows в отдельной
области памяти.
SHARED
Запуск 16-разрядной программы Windows в общей
области памяти.
LOW
Запуск приложения с приоритетом IDLE.
NORMAL
Запуск приложения с приоритетом NORMAL.
HIGH
Запуск приложения с приоритетом HIGH.
REALTIME
Запуск приложения с приоритетом REALTIME.
WAIT
Запуск приложения с ожиданием его завершения.
ABOVENORMAL Запуск приложения с классом
приоритета ABOVENORMAL
BELOWNORMAL Запуск приложения с классом
приоритета BELOWNORMAL
команда/программа
Если это внутренняя команда
cmd.exe или пакетный файл,
обработчик команд (cmd.exe)
запускается с ключом /K.
Это означает, что окно не будет
закрыто после завершения
команды.
Если это не внутренняя команда
cmd.exe и не пакетный файл,
значит, это программа, которая
будет запущена в графическом
или текстовом окне.
параметры
Параметры, передаваемые команде/программе.
Изменения
вызова внешних команд из командной строки или с помощью команды
START при
включении расширенной обработки команд:
Для вызова
неисполняемых файлов через механизм сопоставления типов файлов
достаточно просто ввести имя файла в
командной строке. Например, команда
WORD.DOC запускает приложение,
сопоставленное расширению имени файла .DOC.
Сведения о создании подобных сопоставлений из
пакетных файлов приведены
в описаниях команд ASSOC и FTYPE.
При запуске
32-разрядного приложения с графическим интерфейсом пользователя
обработчик команд CMD.EXE не ожидает
завершения работы приложения перед
возвратом к приглашению командной
строки. Подобное новое поведение НЕ
относится к запуску приложений из пакетных
файлов.
При
выполнении командной строки, первым элементом которой является текстовая
строка "CMD" без расширения имени
файла или указания пути, она заменяется
значением переменной COMSPEC. Это
предотвращает запуск CMD.EXE из
текущей активной папки, если таковая
программа там имеется.
Если первый
элемент командной строки не содержит расширения имени файла,
обработчик команд CMD.EXE использует
значение переменной среды PATHEXT,
чтобы определить расширения имен
исполняемых файлов и порядок поиска
нужного файла. По умолчанию для переменной PATHEXT задается
значение:
.COM;.EXE;.BAT;.CMD
Обратите внимание, что этот синтаксис
подобен синтаксису для переменной
PATH, то есть отдельные элементы
разделяются точкой с запятой.
Если при
поиске исполняемого файла нет соответствия ни одному из расширений,
выполняется
проверка соответствия указанного имени папки. Если имя папки
соответствует
указанному, то команда START запускает EXPLORER для этого
пути. Если
такое действие выполняется из командной строки, то оно эквивалентно
выполнению
команды CD /D для указанного пути.
subst
Сопоставление имени диска указанному пути.
SUBST
[диск1: [диск2:]путь]
SUBST
диск1: /D
диск1:
Виртуальный диск, который сопоставляется указанному пути.
[диск:]путь
Физические диск и путь,
которым сопоставляется
виртуальный диск.
/D
Удаление ранее созданного виртуального диска.
Введите
SUBST без параметров для вывода текущего списка виртуальных дисков.
time
Вывод или изменение времени.
TIME [/T | время]
Введите
TIME без параметров для вывода текущего времени и запроса на ввод
нового
времени. Нажмите клавишу ENTER для сохранения
текущего времени.
Когда
расширенная обработка команд включена, команда TIME поддерживает
ключ /T,
позволяющий просто вывести текущее значение времени без запроса
нового
времени.
title
Изменение заголовка окна командной строки.
TITLE
[строка]
строка
Будущий заголовок окна командной строки.
tree
Графическое представление структуры папок или пути.
TREE [диск:][путь] [/F] [/A]
/F
Вывод имен файлов в каждой папке.
/A
Использовать символы ASCII вместо символов национальных алфавитов.
type
Вывод содержимого одного или нескольких текстовых файлов.
TYPE
[диск:][путь]имя_файла
ver
Вывод версии Windows 2000.
VER
verify
Включение или отключение режима проверки правильности записи файлов на диск.
VERIFY [ON | OFF]
Введите
VERIFY без параметра для определения текущего значения этой команды.
vol
Вывод метки и серийного номера тома для диска.
VOL [диск:]
xcopy
Копирование файлов и структур каталогов.
XCOPY
источник [результат] [/A | /M] [/D[:дата]] [/P] [/S [/E]] [/V] [/W]
[/C] [/I]
[/Q] [/F] [/L] [/H] [/R] [/T] [/U]
[/K] [/O] [/X] [/Y]
[/-Y] [/N] [/Z]
[/EXCLUDE:файл1[+файл2][+файл3]...]
источник Копируемые файлы.
результат
Местоположение и/или имена новых файлов.
/A
Копирование только файлов с установленным архивным атрибутом.
Сам атрибут при этом не
изменяется.
/M
Копирование только файлов с установленным архивным атрибутом.
После копирования атрибут
снимается.
/D:дата
Копирование файлов, измененных не ранее указанной даты.
Если дата не указана, заменяются
только конечные файлы,
более старые, чем исходные.
/EXCLUDE:файл1[+файл2][+файл3]...
Список файлов, содержащих
строки. Когда любая из строк
Совпадает с любой частью
абсолютного пути к копируемому файлу,
такой файл исключается из
операции копирования. К примеру,
указав строку \obj\ или .obj
можно исключить все файлы из
папки obj или все файлы с
расширением
obj соответственно.
/P
Вывод запросов перед созданием каждого нового файла.
/S
Копирование каталогов с подкаталогами (кроме пустых).
/E
Копирование каталогов с подкаталогами (в том числе пустых).
Эквивалентен сочетанию ключей /S
/E. Совместим с ключом /T.
/V
Сравнение конечных файлов с исходными.
/W
Вывод запроса на нажатие клавиши перед копированием.
/C Продолжение копирования, независимо от
наличия ошибок.
/I
Если результат не существует, а копируется несколько файлов,
считается, что указано имя
каталога.
/Q
Запрет вывода имен копируемых файлов.
/F
Вывод полных имен исходных и конечных файлов.
/L
Вывод имен копируемых файлов.
/H
Копирование скрытых и системных файлов (среди прочих).
/R
Разрешение замены файлов, предназначенных только для чтения.
/T
Создание структуры каталогов (кроме пустых каталогов) без
копирования файлов. Если
требуется создать пустые каталоги
и подкаталоги, используйте
сочетание ключей /T /E.
/U
Копирование только файлов, уже имеющихся в конечном каталоге.
/K
Копирование атрибута "Только чтение" (обычно он сбрасывается).
/N
Использование коротких имен при копировании.
/O
Копирование сведений о владельце и данных ACL.
/X
Копирование параметров аудита файлов (требует /O).
/Y
Подавление запроса подтверждения на перезапись существующего
конечного файла.
/-Y
Обязательный запрос подтверждения на перезапись существующего
конечного файла.
/Z
Копирование сетевых файлов с возобновлением.
Ключ /Y
можно установить через переменную среды COPYCMD.
Ключ /-Y
командной строки переопределяет такую установку.
Комментариев нет:
Отправить комментарий