Страницы: 1 .. 116 117 118 119 120 .. 282
Использование пакетных параметров командной строки
Пакетные параметры командной строки используются в пакетном файле для получения информации о настройках среды.
Файл 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 .. 116 117 118 119 120 .. 282