
- •Лабораторная работа №1 Теоретическая часть
- •Основные конструкции языка
- •Передача управления указанному командному файлу. После окончания выполнения вызываемого файла управление будет возвращено на строку, следующую за командой call.
- •Передача управления на указанную функцию в пределах исполняемого в данный момент командного файла.
- •Передача управления на метку
- •Сравнение двух операндов (строк или чисел)
- •Проверка существования файла
- •Проверка результата завершения последней отработавшей программы
- •Сдвиг влево переменных типа % на указанное число позиций
- •Манипуляция значением переменной
- •Лабораторная работа №1 Практическая часть
- •Лабораторная работа № 1 Задание для самостоятельной работы
- •Содержание отчета
Сдвиг влево переменных типа % на указанное число позиций
Формат вызова:
SHIFT /<n>
В языке командных файлов непосредственно из программы можно обратится к переменным %0 - %9 (из которых %0 изначально содержит имя файла с выполняющимся в данный момент скриптом, а остальные переменные – значения переданных скрипту во время запуска параметров). Однако скрипту может быть передано до 255 параметров одновременно. Чтобы обратиться к десятому и остальным параметром необходимо использовать команду SHIFT.
Пример использования:
SHIFT /10
После вызова данной команды значение переменной %10 будет скопировано в переменную %1, значение переменной %11 будет скопировано в переменную %2 и так далее вплоть до переменной с номером 255.
Манипуляция значением переменной
SET NAME = VLADIMIR PUTIN
Замена подстроки
ECHO %NAME:PUTIN=LENIN%
Выведет на экран: VLADIMIR LENIN
Выделение подстроки
Начиная с самого первого символа (номер 0) в количестве 8 символов:
ECHO %NAME:~0,8%
Выведет на экран: VLADIMIR
Выделение последних пяти символов:
ECHO %NAME:~-5%
Выведет на экран: PUTIN
Выделение начиная с шестого (номер 5) и вплоть до шестого с конца:
ECHO %NAME:~5,-6%
Выведет на экран: MIR
Обработка переменной модификаторами
Формат вызова:
%~<буквы модификаторов><имя переменной цикла или номер переменной %>
Варианты модификаторов:
-
Отсутствует
Возвращает значение переменной без кавычек
*
Возвращает все аргументы одной строкой
f
Возвращает полное имя файла
d
Возвращает имя диска
p
Возвращает полный путь файла
n
Возвращает имя файла без расширения
x
Возвращает расширение файла
s
Возвращает короткое имя файла вида PROGRA~1
a
Возвращает атрибуты файла
t
Возвращает время создания файла
z
Возвращает размер файла
$<переменная>
Ищет файл во всех каталогах, перечисленных в переменной через точку с запятую, и если находит, возвращает путь файла
Примеры использования:
Запускаем Test.bat C:\AUTOEXEC.BAT “Hello World!”
Код файла Test.bat:
REM Выведет AUTOEXEC
ECHO %~n1%
REM Выведет BAT
ECHO %~x1%
REM Выведет Hello World!
ECHO %~2
REM Подсчет размера всех файлов в текущем каталоге
FOR %%I IN (*.*) DO SET /A SIZE+=%%~zI
Служебные переменные:
Текущее время: %TIME%
Текущая дата: %DATE%
Текущий каталог: %CD%
Случайное число: %RANDOM%
Имя текущего пользователя: %USERNAME%
Имя компьютера: %COMPUTERNAME%
Путь к домашней папке пользователя: %USERPROFILE%
Путь к папке временных файлов: %TEMP%
Путь к папке с файлами ОС: %SYSTEMROOT%