Администрирование Windows О параметрах командных файлов и не только Sat, October 12 2024  

Поделиться

Нашли опечатку?

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.

О параметрах командных файлов и не только Печать
Добавил(а) microsin   

Краткий справочник по использованию параметров для bat (и cmd) файлов.

Параметр Описание
%1 Стандартный параметр
%~f1 Расширяет %1 до полного пути к файлу. Если вы только ввели имя файла, этот параметр расширит его включением драйва/директории
%~d1 Извлекает имя драйва из %1.
%~p1 Извлекает путь из %1
%~n1 Извлекает имя файла из %1, но без расширения
%~x1 Извлекает расширение файла из %1
%~s1 Изменяет длинное имя и расширение файла до стандартного 8.3; используется как %~sn1 для короткого имени файла и как %~sx1 для короткого расширения

Можно объединить несколько параметров:

Параметр Описание
%~dp1 Расширяет %1 только до имени драйва и пути
%~nx1 Расширяет %1 только до имени и расширения файла

Запущенный bat-файл не загружается в память сразу, он считывает и выполняет команды по одной. Поэтому, если во время выполнения одной из команд изменить содержимое bat-файла, то при выполнении следующей команды будут срабатывать только что внесённые изменения.

[Проверка наличия параметра]

Проверить наличие определенного параметра в bat-файле можно оператором if [%1]==[] goto, пример:

@echo off
 
if [%1]==[] goto usage
@echo Это не выполнится, если параметр %1 указан
@echo Done.
goto :eof
 
:usage
@echo Usage: %0 ^<EnvironmentName^>
exit /B 1

Этот же пример показывает, как можно экранировать действие специальных символов (в данном примере это символы < и >) с помощью символа ^.

[Проверка значения параметра]

Пример командного файла, который ожидает в первом параметре значение -a или -b:

@echo off
 
if "%1"=="-a" goto printA
if "%1"=="-b" goto printB
goto wrong_arg
 
:printA
echo A
goto eof
 
:printB
echo B
goto eof
 
:wrong_arg
echo "Неправильные аргументы"
 
:eof

[Ссылки]

1. Как запустить командный файл с параметрами site:winfaq.com.ru.

 

Добавить комментарий


Защитный код
Обновить

Top of Page