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

  • 04.02.2020
  • 11 673
  • 1
  • 23
  • 21
  • 2
Использование пакетных параметров командной строки

Описание

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

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

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

Файл Cmd.exe разворачивает переменные с %0 по %9. При использовании пакетных параметров переменная %0 заменяется на имя пакетного файла, а переменные с %1 по %9 — на соответствующие аргументы, напечатанные в командной строке. Для доступа к переменным больше %9 запустите команду shift. Для получения дополнительных сведений о команде shift смотрите раздел Shift. Параметр %* ссылается на все аргументы, которые передаются пакетному файлу, за исключением параметра %0.

Например, для копирования содержимого из папки 1 (Folder1) в папку 2 (Folder2), где параметр %1 заменяется на значение Folder1, а параметр %2 — на значение Folder2, в пакетном файле с именем Mybatch.bat введите следующую строку:

xcopy %1\*.* %2

Для запуска файла введите:

mybatch.bat C:\folder1 D:\folder2

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

xcopy C:\folder1 \*.* D:\folder2

Модификаторы командной строки

С пакетными параметрами можно также использовать модификаторы. Модификаторы используют информацию о текущем диске и каталоге как часть или полное имя файла или каталога. Для использования модификатора напечатайте символ (%), затем символ тильды (~), а затем соответствующий модификатор (т.е., %~модификатор).

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

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

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

Модификатор Описание
%~dp1 замена %1 именем диска и путем
%~nx1 замена %1 именем файла и расширением
%~dp$PATH:1 поиск в каталогах, перечисленных в переменной среды PATH, и замена %1 именем диска и путем к первому найденному файлу.
%~ftza1 замена %1 строкой, аналогичной результату работы программы dir

Примечания

  • %1 и PATH в показанных выше примерах можно заменить на другие значения пакетных параметров.
  • Модификатор %* является уникальным, так как он представляет все аргументы, переданные пакетному файлу. Этот модификатор не используется в комбинации с модификатором %~. Конструкция %~ должна завершаться допустимым номером аргумента.
  • Нельзя манипулировать пакетными параметрами подобно переменным среды. Нельзя искать и заменять значения или контролировать подстроки. Но переменной среды можно назначить параметр, а потом уже ей манипулировать.
Была ли эта статья Вам полезна?

Комментарии к статье (1)

    • Гость

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

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *

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