Описание основных возможностей сценариев командной строки — КиберПедия 

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

Таксономические единицы (категории) растений: Каждая система классификации состоит из определённых соподчиненных друг другу...

Описание основных возможностей сценариев командной строки

2020-08-20 126
Описание основных возможностей сценариев командной строки 0.00 из 5.00 0 оценок
Заказать работу

Commands of MS-DOS

Command

Description

Parameters

Работа с каталогами

dir диск:\путь

[Directory] Просмотр содержимого каталога /a[[:]атрибуты] – выводит информацию тех директорий и файлов, атрибуты которых указаны: d – каталоги; h – скрытые файлы; s – системные файлы; r - файлы только для чтения символ “-“ перед буквой имеет значение НЕ; /b – вывод только имён файлов /c – разделитель групп разрядов для вывода размеров файлов; /d – вывод в несколько столбцов с сортировкой по столбцам; /l – использование нижнего регистра для имён файлов; /n – отображение имён файлов в крайнем правом столбце; /o – сортировка списка отображаемых файлов: n – по имени; s – по размеру (сперва меньшие) e – по расширению; d – по дате (сперва старые); g – начать список с каталогов; префикс “-“ обращает порядок; /p - задаёт поэкранный режим вывода; /q – вывод сведений о владельце файла; /s – выод списка файлов из указанного каталога и его подкаталогов; /t – выбор поля времени для отображения и сортировки: c – создание; a – последнее использование; w – последнее изменение; /w - выводит только информацию об именах файлов в каталоге; /x – отображение коротких имён для файлов. Чьи имена не соответствуют стандарту 8.3; /4 – вывод номера года в четырёхзначном формате.

cd диск:\путь

[Change Directory] Изменение текущего каталога. cd.. - переход в предыдущий каталог; cd \ - переход в корневой каталог текущего диска.

md диск:\путь

[Make Directory] Создание каталога.  

rd диск:\путь

[Remove Directory] Уничтожение каталога.   /s – удаление дерева каталогов, включая файлы и папки; /q – отключение запроса на удаление дерева каталогов при включённом параметре /s.

Работа с файлами

copy источник[+источник] результат

Позволяет копировать (переименовывать, сливать несколько файлов в один) файл или копировать файл на одно из устройств. /a – файл является текстовым файлом ASCII; /b – файл является двоичным файлом; /v – проверка правильности копирования файлов; /y – подавление запроса на перезапись конечного файла; /-y – обязательный запрос на перезапись конечного файла; /z – копирование сетевых файлов с возобновлением;   Имена устройств: prn – принтер (1-ый); lpt1 – параллельный порт LPT; aux – основной(1-ый) коммуникационный канал; com1 – последовательный порт COM1; con – консоль; nul – пустота (чёрная дыра);

ren имя1 имя2

[Rename] Переименование файла имя1 в имя2.  

del диск:\путь

erase диск:\путь

[Delete] Удаление файла. Если указан каталог, то из него будут удалены все файлы. /p – запрос на подтверждение перед удалением каждого файла; /f – принудительное удаление файлов, доступных только для чтения; /s – удаление указанных файлов из всех подкаталогов; /q – отключение запроса на подтверждение при удалении файлов; /a – отбор файлов для удаления по атрибутам: d – каталоги; h – скрытые файлы; s – системные файлы; r - файлы только для чтения символ “-“ перед буквой имеет значение НЕ.

move [/y | /-y] путь1 путь2

Перемещение файлов и переименование файлов и папок. /y – перезаписывать существующие папки без предупреждения; /-y – перезаписывать существующие папки с предупреждением.

type диск:\путь

Вывод содержимого файла на экран.  

more диск:\путь

more < файл

файл|more

Последовательный вывод содержимого файла. Стандартный набор ключей можно поместить в переменную среды MORE. /e – разрешение использования дополнительных возможностей; /c – очистка экрана перед выводом каждой страницы; /p – учёт символов перевода страницы; /s – сжатие нескольких пустых строк в одну строку; /tn – замена символа табуляции n пробелами.

comp файл1 файл2

Сравнение двух файлов. /d – вывод различий в десятичном формате; /a – вывод различий в формате ASCII; /l – вывод номеров строк, в которых обнаружены различия; /n=число – число первых строк в файле, которые необходимо сравнить; /c – сравнение файлов без учёта регистра букв ASCII.

attrib [атрибуты] файл

Установка атрибутов файла. Возможные значения: + - установка атрибута; - - снятие атрибута; h – скрытые файлы; s – системные файлы; r - файлы только для чтения; /s – обработка файлов с указанными именами в текущей папке и всех её подпапках; /d – обработка и файлов, и папок.

Пакетные файлы

%n

Формальный параметр, позволяющий передать в командный файл некоторые данные. Здесь n – число от 1 до 9 показывающее номер используемого параметра.  

goto метка

Позволяет передать управление на метку. Метка задаётся следующим образом: «:метка».  

if [not] errorlevel число команда1 else команда2

if [not] строка1 = = строка2 команда1 else команда2

if [not] exist имя_файла команда1 else команда2

Позволяет в зависимости от условия выполнить ту или иную команду. not – обращает истинность условия; errorlevel число – условие является истинным, если код возврата последней выполненной программы не меньше указанного числа; строка1 = = строка2 –условие является истинным, если указанные строки совпадают; exist имя_файла – это условие является истинным, если файл с указанным именем существует; команда1 – задаёт команду, выполняемую при истинности условия; команда2 – задаёт команду, выполняемую если условие ложно;

for %переменная in (набор) do команда

Позволяет выполнить циклическое выполнение команд. %переменная – подставляемый параметр, если %переменная используется в командном файле, то необходимо использовать не %, а %%; (набор) – набор, состоящий из одного или нескольких файлов, также допускается использование подстановочных файлов; команда – команда, которую необходимо выполнить для каждого файла.

shift

Вызывает сдвиг списка формальных параметров относительно списка фактических параметров.  

rem текст

Позволяет записать текст-примечание в командном файле.  

echo

Выводит сообщения на экран. on – показывать строку, которая следует за этой командой; off – не показывать строку, которая следует за этой командой; @echo on – выводить на экран все команды; @echo off – выводить на экран все команды; текст – выводит текст.

choice (/c:список_символов) (/t:символ, число_секунд) сообщение

Позволяет произвести диалог с пользователем. /c:список_символов – указывает допустимые символы, которые можно вводить (по умлчанию Y/N); /t:символ, число_секунд – если в течение заданного времени не введён ответ принимается ответ символ; сообщение – текст, выводимый на экран; /s – следует различать прописные и строчные буквы; /n – будет убирать список допустимых ответов; /t – пользователь не может вмешаться при обычной загрузке. Если в тексте присутствует символ /, то его необходимо взять в кавычки.

Работа с системой

command

Запуск командного процессора.  

ver

Показывает версию операционной системы.  

path [:диск:\путь]

Указывает MS-DOS искать исполняемый файл в заданных каталогах, каталоги разделяются знаком “;”. path; - отмена поиска во всех перечисленных каталогах.

set переменная=значение

Установка переменной в DOS, либо её изменение, если она существует.  

files=n

Устанавливает количество одновременно открытых файлов. Здесь n – количество файлов. На каждый открытый файл используется 48 байт ОЗУ.  

device=имя_драйвера

Указывает MS-DOS какой драйвер необходимо загрузить для работы того или иного устройства. имя_драйвера должно быть полным (диск:\путь\имя).  

install=имя_файла

Загрузка файла в ОЗУ с расширением *.com и *.exe. имя_файла должно быть полным (диск:\путь\имя).  

dos=hight

Даёт возможность загружать модули ОС и некоторые файлы в область памяти выше 640 кбайт.  

buffers=n

Устанавливает число буферов для работы с жёстким диском. Для каждого буфера необходимо 512 байт ОЗУ.  

cls

Производит очистку экрана.  

prompt текст

Изменение вида приглашения DOS. В качестве текста можно использовать символы: $p - текущий дисковод и каталог; $n - текущий дисковод; $d - текущая дата; $t - текущее время; $v - версия DOS; $_ - переход на новую строку; $s - пробел; $h - удаление предыдущего символа; $e - символ с кодом 27 (ESC); $g - символ > $b - символ |; $$ - символ $.

date

Вывод информации о дате с возможностью настройки.  

time

Вывод информации о времени с возможностью настройки.  

ctty имя_устройства

Происходит смена стандартной консоли ввода/вывода на вспомогательную или её восстановление на стандартную.  

sys диск:

Переносит скрытые файлы DOS с текущего накопителя на диск:.  

break

Установка возможности прерывания работающей программы по Ctrl + C. on – разрешено; off – запрещено.

exit

Выход из командного процессора.  

Работа с диском

verify

Вывести информацию о том, включен ли режим проверки записи на диск.  

Verify on

Включить режим проверки записи на диск.  

Verify off

Выключить режим проверки записи на диск.  

vol диск:

Вывод метки и серийного номера для диска.  

label

Выводит информацию о метке диска с возможностью её изменения.  

format диск:

Форматирование диска. /fs – тип файловой системы (FAT, FAT32); /v:метка – устанавливает метку диска; /q – производится быстрое форматирование; /f:размер – указывает размер форматируемой дискеты (1,44); /s – копирование на дискету файлов операционной системы (io.sys, msdos.sys, command.com), что делает её загрузочной; /t:дорожек – указывает число дорожек на каждой стороне диска; /n:секторов – число секторов на каждой дорожке.

chkdisk [диск:][\путь]

Анализ каталогов, файлов, таблиц размещения файлов накопителя и вывод сведений о дисковой и оперативной памяти. /f – требуется фиксация ошибок, обнаруженных в дереве каталогов или структуре размещения файлов, исправления записываются на диск. Если будут обнаружены области не входящие ни в один файл, то они будут сохранены как файлы в корневом каталоге с именами FILEnnnn.CHK, где nnnn – номер области; /v – отображает на дисплее местоположение всех файлов указанного или текущего накопителя.

diskcopy диск1: диск2:

Копирование содержимого одной дискеты на другую (диск1 и диск2 – это физические дисководы, могут совпадать). /v – проверка правильности переноса данных.

diskcomp диск1: диск2:

Сравнение содержимого двух дискет.          

 

 

Вывод

Вывод на консоль осуществляется с помощью команды echo. Например, "echo Здравствуй, читатель".
При использовании в командных файлы команды echo on и echo off позволяют включать и выключать режим вывода на экран самих исполняемых команд.
Если поставить перед командой знак @, то она на экране не будет выведена в любом случае. Будет видет только результат ее исполнения.
Например, "@echo no echo".
Команда "echo." позволяет вывести пустую строку.

Текущий каталог

Текущий каталог позволяет изменять команда cd.
Рекомендуется всегда использовать с командой опцию /d для смены одновременно и текущего диска.
Например, "cd /d d:\delta".
Текущий каталог можно узнать также с помощью псевдопеременной %cd%.
Например, "@echo Current directory is: %cd%".
При операциях с путями точка "." обозначает текущий каталог, а две точки ".." - каталог уровнем выше.
Например, команда "cd..\.." указывает, что нужно перейти двумя каталогами выше.

Параметры вызова сценариев

Из пакетного файла переданные параметры можно узнать с помощью переменных %1, %2, %3 и т.д. по порядку.
%0 расширяется до полного пути к данному командному файлу.
%* в пакетном файле обозначает все аргументы (например %1 %2 %3 %4 %5...).

Например, после вызова

d:\delta\lngs\compile_all.cmd sol.dpr.

будем иметь следующую картину:

Параметр Значение
%0 d:\delta\lngs\compile_all.cmd
%1 sol.dpr
%2 . (точка)
%3,%4,%5 и т.д. (пусты)
%* sol.dpr.

Современные ОС используют расширенный режим обработки параметров, в котором доступны следующие модификаторы:

Модификатор Описание
%~1 расширение %1 и удаление любых кавычек ("")
%~f1 замена %1 полным путем
%~d1 замена %1 именем диска
%~p1 замена %1 путем без диска и имени файла
%~n1 замена %1 именем файла без расширения
%~x1 замена %1 расширением имени файла
%~s1 замена полным путем, содержащим только короткие имена
%~a1 замена %1 атрибутами файла
%~t1 замена %1 датой и временем модификации файла
%~z1 замена %1 размером файла
%~$PATH:1 Поиск в каталогах, перечисленных в переменной среды PATH, замена %1 полным именем первого найденного файла. Если переменная среды не определена или поиск не обнаружил файлов, модификатор выдает пустую строку.

Описанные модификаторы можно применять в различных сочетаниях для всех параметров. Например:

Модификатор Описание
%~dp0 полный путь (включая завершающий слэш) к каталогу выполняемого скрипта
%~nx1 имя файла первого параметра с расширением
%~z2 размер файла второго параметра
%~ftza1 замена %1 строкой, аналогичной результату работы программы dir

См. также Использование пакетных параметров командной строки.

Проверка условий

Проверка условий осуществляется с помощью команды if.
Синтаксис:
if [not] строка1==строка2 команда [else выражение]
При обработке переменных важно учитывать возможность, что они окажутся пустыми. Поэтому, чтобы команда сравнения осталась корректной, операнды лучше заключать в кавычки: if "%1"=="input.txt".
Расширенный синтаксис:
if [/i] строка1 оператор_сравнения строка2 команда [else выражение]
Расширенный синтаксис позволяет использовать регистронезависимое (/i) сравнение со следующими операторами:EQU (равно), NEQ (не равно), LSS (меньше), LEQ (меньше или равно), GTR (больше), GEQ (больше или равно).

Проверка существования файла:
if [not] exist имя_файла команда [else выражение]
Например: if exist $result$.txt del $result$.txt

Проверка кода возврата:
if [not] errorlevel число команда [else выражение]
Условие верно, если предыдущая обработанная команда завершилась с кодом, равным или большим значения число.
Например:

@echo off

Использование меток

Метки обозначаются идентификатором с двоеточием прямо перед ним.
Для перехода по меткам используется команда goto.
Существует специальный вариант команды "goto:eof" для перехода на конец исполняемого сценария.

Есть также особый вариант команды call для повторного вызова текущего скрипта с заданной метки с определенными параметрами.

Пример:

@rem Такой вот тест:)

if %cd%\==%~dp0 goto next

@echo Внимание: текущий каталог не совпадает с путем к данному скрипту

:next

if not exist $result$.txt (@echo $result$.txt не найден) else call:modified $result$.txt

Goto:eof

:modified

@echo %1 был модифицирован %~t1

if /i ".txt" EQU "%~x1" @echo %1 является текстовым файлом

Goto:eof

Запуск команд

Запускать новые процессы из командной строки можно двумя способами.

Инструкция " cmd команда" запускает системный пакетный обработчик cmd.exe для выполнения команды команда.
Если вызов происходит из консоли, то используется имеющаяся, если нет — создается новая.
Ключи /c и /k указывают, что по завершении исполнения консоль нужно закрыть или оставить, соответственно.

Инструкция " start команда" запускает обработку команды команда в отдельном параллельном процессе.
Соответствующие ключи позволяют изменять приоритет запускаемого процесса.
Ключ /wait указывает, что запустившему процессу следует дождаться завершения запущенного.

Запускать новые командные сценарии из командных сценариев можно также двумя способами.
Первый:

@echo Эта строка выполнится перед запуском

call some_script.cmd some params

@echo Эта строка выполнится после завершения some_script.cmd

Второй:

@echo Эта строка выполнится перед запуском

some_script.cmd some params

@echo Эта строка никогда не выполнится, т.к. управление из some_script.cmd в вызвавший скрипт не вернется.

Код возврата команд

После выполнения любой потенциально сбойной команды код возврата, свидетельствующий о степени успешности ее завершения, сохраняется в специальной псевдопеременной %errorlevel%. Нулевое значение значит, что команда была выполнена успешно, положительные значения свидетельствуют об ошибке, чем больше значение, тем серьезнее проблема.
Значение кода возврата можно проверить с помощью специальной конструкции if [not] errorlevel число (см. if /?).
Также, переменную %errorlevel% можно свободно использовать непосредственно.
Например, "goto answer%errorlevel%" или "echo %errorlevel%".

Команда exit число прерывает исполнение текущего сценария с возвратом запустившему его процессу заданного кода выхода. По умолчанию производится прерывание сразу всей цепочки вызовов пакетных сценариев. Если необходимо завершить только текущий сценарий и возвратить управление в сценарий, вызвавший его командой call, то нужно использовать ключ /b команды exit. Для выхода из сценария с передачей вызвавшему процессу текущего значения %errorlevel% необходимо использовать команду goto:eof.

Некоторые команды всегда устанавливают переменную %errorlevel%, некоторые модифицируют ее только при возникновении ошибок, а некоторые вообще ее никогда не меняют.
Вот пример:

Md testdir

@echo %errorlevel%=0, успешно

Rd testdir

@echo %errorlevel%=0, успешно

Тест

@echo %errorlevel%=9009, недопустимая команда

Md testdir

@echo %errorlevel%=0, успешно

Md testdir

@echo %errorlevel%=1, каталог уже существует

Rd testdir

@echo %errorlevel%=1, успешно, но сохранился код предыдущей ошибки

set errorlevel=0

@echo %errorlevel%=0, после явного сброса

Rd con

@echo %errorlevel%=1, недопустимое имя, но оказывается, что rd errorlevel вообще никогда не меняет

@goto:eof

Копирование

Команда copy умеет копировать и склеивать файлы.
Команда xcopy умеет копировать файлы и каталоги.
Команда ren (rename) умеет переименовывать файлы и каталоги.

Проверить, удачно ли выполнилась команда можно по коду возврата %errorlevel%.

Exit /b 0

Потоки ввода/вывода

Потоки используются в командных сценариях для унифицированного распределения и перенаправления ввода/вывода.

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

Поток Номер дескриптора Описание
STDIN 0 Стандартный ввод (только чтение)
STDOUT 1 Стандартный вывод (только запись)
STDERR 2 Вывод ошибок (только запись)

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

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

Устройство Описание
CON Консоль (чтение с клавиатуры и вывод на экран)
NUL Пустота
PRN Принтер

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

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

Оператор перенаправления Описание
> Перенаправление вывода с затиранием.
< Перенаправление ввода.
>> Перенаправление вывода с добавлением.
>& Считывает данные на выходе одного потока как входные данные для другого потока.
<& Считывает входные данные одного потока как выходные данные другого потока.
| Считывает выходные данные одной команды и записывает их на вход другой команды. Эта процедура известна под названием "канал".

Некоторые команды, такие как find, sort, more, называются фильтрами, т.к. они занимаются специализированной трансформацией входного потока в выходной.

Далее приведены некоторые примеры.

Типичный вызов при тестировании программистских задач.
(Ввод из input.txt, вывод в output.txt, вывод ошибок в никуда).

solution.exe <input.txt >output.txt 2>nul

Вызов скрипта компиляции с перенаправлением потоков вывода и ошибок на дописывание в файл compile.log.

call compile_all.cmd %SOLUTION% %TARGET% >>compile.log 2>&1

Дописывание содержимого одного файла в конец другого.

more <report.txt >>$result$.txt

Поэкранный вывод списка элементов текущего каталога.

dir | more

Поэкранный вывод имен всех фидошников города Гомеля, отсортированных по алфавиту.

(for /f "usebackq tokens=5 delims=, " %%i in (`find /i "Gomel" R45Point`) do @echo %%i) | sort | more

Организация циклов

Команда for позволяет произвести запуск некоторой команды для каждого элемента из заданного множества.
Синтаксис:
for { % переменная | %% переменная } in ( множество ) do команда [ ПараметрыКоманднойСтроки ]
Параметры:

{ % переменная | %% переменная }

Обязательный параметр. Замещаемый параметр. Используйте % переменная для выполнения команды for из командной строки. В пакетных файлах для команды FOR используется запись %%переменная вместо %переменная. Имена переменных учитывают регистр букв (%i отличается от %I).

( множество )

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

команда

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

ПараметрыКоманднойСтроки

Задает параметры командной строки, которые используются с указанной командой.


Подробнее команда описана в справке. Здесь приведены несколько примеров, иллюстрирующих ее возможности.

Перебор фиксированного множества параметров.

for %%i in (DirInfo,File_Id.diz,Descript.ion,Read.Me,ReadMe.*,FILES.BBS) do @set descr=%%i & @if exist %%i goto found

Goto notfound

:found

@echo В текущем каталоге доступно описание в файле %descr%

:notfound

Итерация по файлам.

@set sz=0

@for /r %temp% %%i in (*.*) do @set /a sz+=%%~zi & @echo %%i %%~zi

@echo Размер временного каталога: %sz%

Итерация по каталогам.

@echo off

echo Поддерживаемые компиляторы:

for /d %%i in (d:\delta\lngs\*) do @echo %%~ni

Численная итерация.

@for /l %%i in (1,1,5) do @echo %%i

@echo...вышел зайчик погулять.

Итерация и разбор файлов

Команда for может также употребляться для чтения строк из файлов и их синтаксического разбора.
В этом случае используется следующий синтаксис:
FOR /F ["options"] %переменная IN (набор) DO команда [параметры]
FOR /F ["options"] %variable IN ("literal string") DO command [command-parameters]
FOR /F ["options"] %variable IN ('command') DO command [command-parameters]
или, если использован параметр usebackq:
FOR /F ["options"] %variable IN (filenameset) DO command [command-parameters]
FOR /F ["options"] %variable IN ('literal string') DO command [command-parameters]
FOR /F ["options"] %variable IN (`command`) DO command [command-parameters]

Набор содержит имена одного или нескольких файлов, которые по очереди открываются, читаются и обрабатываются. Обработка состоит в чтении файла, разбивки его на отдельные строки текста и выделения из каждой строки заданного числа подстрок (в том числе нуля). Затем найденная подстрока используется в качестве значения переменной при выполнении основного тела цикла. По умолчанию ключ /F выделяет из каждой строки файла первое слово, очищенное от окружающих его пробелов. Пустые строки в файле пропускаются. Необязательный параметр "options" служит для переопределения заданных по умолчанию правил обработки строк.
Возможные ключевые слова для этого параметра:

Ключевое слово Описание
eol=c Задает символ конца строки (только один символ).
skip=n Задает число строк, пропускаемых в начале файла.
delims=xxx Задает набор разделителей. Заменяет набор разделителей по умолчанию, состоящий из пробела и символа табуляции.
tokens=x,y,m-n Задает элементы, передаваемые из каждой строки в тело цикла for при каждой итерации. В результате размещаются дополнительные имена переменных. Форма m-n задает диапазон, указывающий элементы с m -го по n -ый. Если последним символом строки tokens = является звездочка (*), то размещается дополнительная переменная, в которую помещается остаток строки после разбора последнего элемента.
usebackq Задает возможность использования кавычек для имен файлов в параметре МножествоИменФайлов. Задает исполнение строки, заключенной в обратные кавычки, как команды, а строки в одиночных кавычках — как команды в символьной строке.

Поясняющий пример:
FOR /F "eol=; tokens=2,3* delims=, " %i in (myfile.txt) do @echo %i %j %k
Эта команда обрабатывает файл myfile.txt, пропускает все строки, которые начинаются с символа точки с запятой, и передает вторую и третью подстроки из каждой строки в тело цикла, причем подстроки разделяются запятыми и/или пробелами. В теле цикла переменная %i используется для второй подстроки, %j - для третьей, а %k получает все оставшиеся подстроки после третьей. Имена файлов, содержащие пробелы, необходимо заключать в двойные кавычки. Для того чтобы использовать двойные кавычки, необходимо использовать параметр usebackq, иначе двойные кавычки будут восприняты как границы строки для обработки.

Синтаксис команды FOR /F также позволяет обработать отдельную строку, с указанием параметра filenameset, заключенным в одиночные кавычки. Строка будет обработана как единая строка из входного файла.

Наконец, команда FOR /F позволяет обработать строку вывода другой команды. Для этого следует ввести строку вызова команды в апострофах вместо набора имен файлов в скобках. Строка передается для выполнения обработчику команд CMD.EXE, а вывод этой команды записывается в память и обрабатывается так, как будто строка вывода взята из файла. Например, следующая команда:
FOR /F "usebackq delims==" %i IN (`set`) DO @echo %i
выведет перечень имен всех переменных среды, определенных в настоящее время в системе.

Еще один пример:

@echo Разбор $result$.txt

for /f "usebackq delims=" %%i in ($result$.txt) do (@set val=%%i) & @goto next

:next

@set /a nval=val+0

if not "%val%"=="%nval%" (@echo Не число!) & @goto:eof

if %val% lss 0 (@echo Меньше нуля!) & @goto:eof

@echo Начислено %val% баллов.

Организация блокировок

Иногда бывает необходимо обеспечить, чтобы какой-либо скрипт мог выполняться только в единственном экземпляре. Для этого нужно, чтобы скрипт мог за одну элементарную операцию одновременно попытаться установить блокировку и узнать, удалось ли это. На роль такой операции подходит команда создания каталога md (mkdir). При таком подходе наличие блокировки определяется по факту существования определенного каталога, а успех выполнения команды md можно проверить по коду возврата (errorlevel).
Далее приведен иллюстрирующий пример.

@rem Устанавливаем блокировку на повторный запуск

set lockdir=%tmp%\some_lock

md %lockdir%

Установка цвета консоли

Команда color позволяет менять цвет консоли.
Например, "color 0A". Первый символ соответствует цвету фона, второй - текста.

0 = Черный 8 = Серый

1 = Синий  9 = Светло-синий

2 = Зеленый A = Светло-зеленый

3 = Голубой B = Светло-голубой

4 = Красный C = Светло-красный

5 = Лиловый   D = Светло-лиловый

6 = Желтый E = Светло-желтый

7 = Белый  F = Ярко-белый

Цвет создаваемой консоли позволяет менять также опция /t команды cmd.

(CopyLeft) Vadim Kopichenko

 

Commands of MS-DOS

Command

Description

Parameters

Работа с каталогами

dir диск:\путь

[Directory] Просмотр содержимого каталога /a[[:]атрибуты] – выводит информацию тех директорий и файлов, атрибуты которых указаны: d – каталоги; h – скрытые файлы; s – системные файлы; r - файлы только для чтения символ “-“ перед буквой имеет значение НЕ; /b – вывод только имён файлов /c – разделитель групп разрядов для вывода размеров файлов; /d – вывод в несколько столбцов с сортировкой по столбцам; /l – использование нижнего регистра для имён файлов; /n – отображение имён файлов в крайнем правом столбце; /o – сортировка списка отображаемых файлов: n – по имени; s – по размеру (сперва меньшие) e – по расширению; d – по дате (сперва старые); g – начать список с каталогов; префикс “-“ обращает порядок; /p - задаёт поэкранный режим вывода; /q – вывод сведений о владельце файла; /s – выод списка файлов из указанного каталога и его подкаталогов; /t – выбор поля времени для отображения и сортировки: c – создание; a – последнее использование; w – последнее изменение; /w - выводит только информацию об именах файлов в каталоге; /x – отображение коротких имён для файлов. Чьи имена не соответствуют стандарту 8.3; /4 – вывод номера года в четырёхзначном формате.

cd диск:\путь

[Change Directory] Изменение текущего каталога. cd.. - переход в предыдущий каталог; cd \ - переход в корневой каталог текущего диска.

md диск:\путь

[Make Directory] Создание каталога.  

rd диск:\путь

[Remove Directory] Уничтожение каталога.   /s – удаление дерева каталогов, включая файлы и папки; /q – отключение запроса на удаление дерева каталогов при включённом параметре /s.

Работа с файлами

copy источник[+источник] результат

Позволяет копировать (переименовывать, сливать несколько файлов в один) файл или копировать файл на одно из устройств. /a – файл является текстовым файлом ASCII; /b – файл является двоичным файлом; /v – проверка правильности копирования файлов; /y – подавление запроса на перезапись конечного файла; /-y – обязательный запрос на перезапись конечного файла; /z – копирование сетевых файлов с возобновлением;   Имена устройств: prn – принтер (1-ый); lpt1 – параллельный порт LPT; aux – основной(1-ый) коммуникационный канал; com1 – последовательный порт COM1; con – консоль; nul – пустота (чёрная дыра);

ren имя1 имя2

[Rename] Переименование файла имя1 в имя2.  

del диск:\путь

erase диск:\путь

[Delete] Удаление файла. Если указан каталог, то из него будут удалены все файлы. /p – запрос на подтверждение перед удалением каждого файла; /f – принудительное удаление файлов, доступных только для чтения; /s – удаление указанных файлов из всех подкаталогов; /q – отключение запроса на подтверждение при удалении файлов; /a – отбор файлов для удаления по атрибутам: d – каталоги; h – скрытые файлы; s – системные файлы; r - файлы только для чтения символ “-“ перед буквой имеет значение НЕ.

move [/y | /-y] путь1 путь2

Перемещение файлов и переименование файлов и папок. /y – перезаписывать существующие папки без предупреждения; /-y – перезаписывать существующие папки с предупреждением.

type диск:\путь

Вывод содержимого файла на экран.  

more диск:\путь

more < файл

файл|more

Последовательный вывод содержимого файла. Стандартный набор ключей можно поместить в переменную среды MORE. /e – разрешение использования дополнительных возможностей; /c – очистка экрана перед выводом каждой страницы; /p – учёт символов перевода страницы; /s – сжатие нескольких пустых строк в одну строку; /tn – замена символа табуляции n пробелами.

comp файл1 файл2

Сравнение двух файлов. /d – вывод различий в десятичном формате; /a – вывод различий в формате ASCII; /l – вывод номеров строк, в которых обнаружены различия; /n=число – число первых строк в файле, которые необходимо сравнить; /c – сравнение файлов без учёта регистра букв ASCII.

attrib [атрибуты] файл

Установка атрибутов файла. Возможные значения: + - установка атрибута; - - снятие атрибута; h – скрытые файлы; s – системные файлы; r - файлы только для чтения; /s – обработка файлов с указанными именами в текущей папке и всех её подпапках; /d – обработка и файлов, и папок.

Пакетные файлы

%n

Формальный параметр, позволяющий передать в командный файл некоторые данные. Здесь n – число от 1 до 9 показывающее номер используемого параметра.  

goto метка

Позволяет передать управление на метку. Метка задаётся следующим образом: «:метка».  

if [not] errorlevel число команда1 else команда2

if [not] строка1 = = строка2 команда1 else команда2

if [not] exist имя_файла команда1 else команда2

Позволяет в зависимости от условия выполнить ту или иную команду. not – обращает истинность условия; errorlevel число – условие является истинным, если код возврата последней выполненной программы не меньше указанного числа; строка1 = = строка2 –условие является истинным, если указанные строки совпадают; exist имя_файла – это условие является истинным, если файл с указанным именем существует; команда1 – задаёт команду, выполняемую при истинности условия; команда2 – задаёт команду, выполняемую если условие ложно;

for %переменная in (набор) do команда

Позволяет выполнить циклическое выполнение команд. %переменная – подставляемый параметр, если %переменная используется в командном файле, то необходимо использовать не %, а %%; (набор) – набор, состоящий из одного или нескольких файлов, также допускается использование подстановочных файлов; команда – команда, которую необходимо выполнить для каждого файла.

shift

Вызыв

Поделиться с друзьями:

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

Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...

История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...

Таксономические единицы (категории) растений: Каждая система классификации состоит из определённых соподчиненных друг другу...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.163 с.