Bat параметры: Обработка параметров в BAT файле

Содержание

Bat параметры командной строки — Вэб-шпаргалка для интернет предпринимателей!

  • Главная
  • ТЕХНИЧЕСКАЯ
  • BAT
  • Обработка параметров в BAT файле

Обработка параметров в BAT файле

  • размер шрифта уменьшить размер шрифтаувеличить размер шрифта
  • Печать
  • Эл. почта

Вызывая из командной строки bat файл:

или из другого файла:

Внутри этого BAT файла Вы можно обработать параметры. Для получения параметра мы должны использовать символ % и номер параметра. MS DOS заменит эту конструкцию переданным параметром. Давайте пробовать:

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

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

%* ссылается на все аргументы, которые передаются пакетному файлу, за исключением параметра %0.

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

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

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 в показанных выше примерах можно заменить на другие значения пакетных параметров.

Далее кратко описаны полезные возможности, которые можно использовать в командных файлах (*.bat;*.cmd aka батники) операционных систем Windows 2000, XP, 2003 и более поздних.

В этих операционных системах введены существенные расширения возможностей сценариев командной строки, которые позволяют делать, например, следующие вещи:

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

Более подробную помощь нежели в данном обзоре можно найти в стандартной справке в каталоге Windows.

(Типичный путь к файлу справки: C:WINDOWSHelp
tcmds.chm. Если Windows установлена в каталог, отличный от C:WINDOWS, то ссылки на справку из данной страницы работать не будут. Потребуется открыть справку самостоятельно.)
В частности, крайне полезно почитать следующие разделы:

Справку по конкретной команде также всегда можно получить набрав в командной строке » /?».
Например, очень познавательно почитать то, что выдается в результате команд set /?, call /?, for /?, if /?.

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

Вывод
Текущий каталог
Параметры вызова сценариев

Например, после вызова будем иметь следующую картину:

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

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

Модификатор Описание
расширение %1 и удаление любых кавычек («»)
замена %1 полным путем
замена %1 именем диска
замена %1 путем без диска и имени файла
замена %1 именем файла без расширения
замена %1 расширением имени файла
замена полным путем, содержащим только короткие имена
замена %1 атрибутами файла
замена %1 датой и временем модификации файла
замена %1 размером файла
Поиск в каталогах, перечисленных в переменной среды PATH, замена %1 полным именем первого найденного файла. Если переменная среды не определена или поиск не обнаружил файлов, модификатор выдает пустую строку.

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

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

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

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

Например:

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

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

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

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

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

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

Первый: Второй:

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

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

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

Копирование

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

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

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

Символ Синтаксис Определение
& [. ] команда1 & команда2 Выполняется первая команда, затем вторая команда.
&& [. ] команда1 && команда2 Вторая команда выполняется, только если первая была выполнена успешно.
|| [. ] команда1 || команда2 Вторая команда выполняется, только если первая не была выполнена (полученный код ошибки превышает ноль).
( ) [. ] ( команда1 & команда2 ) Используется для группировки или вложения команд.
; или , команда1 параметр1 ; параметр2 Используется для разделения параметров команды.

Примечание:
Амперсанд &, вертикальная черта | и скобки () являются специальными символами, которым должен предшествовать управляющий символ ^ или кавычки, если эти символы передаются в качестве аргументов.

Вот пример специализированного скрипта для сравнения файлов:

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

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

Локальные переменные устанавливаются и используются по-своему в каждом отдельном сценарии, сохраняются только во время его выполнения, а также передаются в дочерние сценарии при вложенных вызовах.

Псевдопеременные, такие как %CD%, %DATE%, %TIME%, %RANDOM%, %ERRORLEVEL%, обрабатываются особенным образом в зависимости от определенных условий.

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

Переменная Тип Описание
Локальная Возвращает путь к текущей папке.
Системная Возвращает имя компьютера.
Системная Возвращает текущую дату. Использует тот же формат, что и команда date /t .
Системная Возвращает код ошибки последней использовавшейся команды.
Системная Указывает путь поиска для исполняемых файлов.
Системная Возвращает произвольное десятичное число от 0 до 32767.
Системная Возвращает размещение системного каталога Windows.
и Системная и пользовательская Возвращает временные папки, по умолчанию используемые приложениями, которые доступны пользователям, выполнившим вход в систему. Некоторые приложения требуют переменную TEMP, другие — переменную TMP.
Системная Возвращает текущее время. Использует тот же формат, что и команда time /t .
Локальная Возвращает имя пользователя, выполнившего вход в систему.

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

Конструкция Назначение
%PATH:

10,5%

расширит действие переменной среды PATH, затем использует только 5 символов, которые начинаются с 11-го символа (пропустив 10) расширенного результата. Если длина не указана, по умолчанию используется оставшееся значение переменной. Если оба значения (длина и число пропускаемых символов) отрицательны, следующим используемым значением будет длина значения переменной среды, добавленной к указанному значению пропуска или указанной длины. %PATH:

-10%

извлечет последние 10 символов переменной PATH %PATH:

0,-2%

извлечет все символы переменной PATH, за исключением 2-х последних

Для установки значений переменных используется команда set.
Установка значений:
set переменная=значение
Показ значений:
set переменная
Показ значений всех переменных:
set (без параметров)
Проверка наличия переменной с заданным именем:
if defined переменная команда

Вычисление арифметических выражений

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

Оператор Действие оператора
() группировка
!

унарные операторы * / % арифметические операторы + — арифметические операторы > двоичный сдвиг & двоичное И ^ двоичное исключающее ИЛИ | двоичное ИЛИ присваивание , разделитель операторов

При использовании символов & | % ^ заключайте выражение в кавычки.
Любые нечисловые строки в выражении считаются именами переменной среды, чьи значения преобразуются в числа до обработки. Если указано имя переменной среды, которое не определено в текущем окружении, ей присваивается значение нуля, что позволяет выполнять арифметические операции со значениями переменной среды без использования % для получения значения.

Пример использования вычисления выражений:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Команда for позволяет произвести запуск некоторой команды для каждого элемента из заданного множества.
Синтаксис:

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

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

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

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

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

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

Описание
eol=c Задает символ конца строки (только один символ).
skip=n Задает число строк, пропускаемых в начале файла.
delims=xxx Задает набор разделителей. Заменяет набор разделителей по умолчанию, состоящий из пробела и символа табуляции.
Задает элементы, передаваемые из каждой строки в тело цикла 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
выведет перечень имен всех переменных среды, определенных в настоящее время в системе.

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

Организация блокировок
Установка цвета консоли

(CopyLeft) Vadim Kopichenko

Рекомендуем к прочтению

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

Windows
  • Bot
  • 04.02.2020
  • 1 896
  • 0
  • 7
  • 5
  • 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 в показанных выше примерах можно заменить на другие значения пакетных параметров.
  • Модификатор %* является уникальным, так как он представляет все аргументы, переданные пакетному файлу. Этот модификатор не используется в комбинации с модификатором %~. Конструкция %~ должна завершаться допустимым номером аргумента.
  • Нельзя манипулировать пакетными параметрами подобно переменным среды. Нельзя искать и заменять значения или контролировать подстроки. Но переменной среды можно назначить параметр, а потом уже ей манипулировать.

bat файл с 10 и более параметрами

Как известно, в bat файле оператор % позволяет получить только девять параметров командного файла:

echo %9

Считать значения десятого и последующих параметров тоже можно.

Сдвиг параметров командой SHIFT

Команда SHIFT

Изменение содержимого (сдвиг) подставляемых параметров для пакетного файла.

Команда SHIFT сдвигает нумерацию параметров, так что под теми же номерами %0-%9 оказываются уже параметры с первого по десятый.

Последующие вызовы SHIFT сдвигают параметры ещё дальше: со второго по одиннадцатый, затем с третьего по двенадцатый и т.д.

echo arg9=%9
shift
echo arg10=%9
shift
echo arg11=%9
shift
echo arg12=%9
shift
echo arg13=%9

В итоге bat файл успешно определяет и десятый параметр, и все остальные:

arg9=value9
arg10=value10
arg11=value11
arg12=value12
arg13=

При сдвиге дальше последнего параметра %9 возвращает пустое значение, в данном случае это 13-й параметр. Это позволяет определить, когда параметры закончились.

Сдвиг заданного числа параметров

Чтобы не двигать все параметры, у команды SHIFT есть специальный ключ:

SHIFT /n

Команда SHIFT при включении расширенной обработки команд поддерживает ключ /n, задающий начало сдвига параметров с номера n, где n может быть от 0 до 9.

Например, в следующей команде:

SHIFT /2

%3 заменяется на %2, %4 на %3 и т.д., а %0 и %1 остаются без изменений.

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

Включение расширенной обработки команд

Делается командой SETLOCAL ENABLEEXTENSIONS:

Пакетная команда SETLOCAL принимает необязательные аргументы:
ENABLEEXTENSIONS / DISABLEEXTENSIONS
Это позволяет включить или отключить расширенную обработку команд.
Эти аргументы переопределяют параметры CMD /E:ON или /E:OFF. Для
получения дополнительных сведений введите CMD /?.

Как видно из справки, расширенную обработку команд можно включить также через

CMD /E:ON

Разбор командной строки

Этот способ получения параметров основан на чтении всей строки параметров %* в цикле FOR:

for %%A in (%*) do (
    echo %%A
)

Этот способ взят с StackOverflow.

Если добавить в цикл сохранение параметров, то можно сохранить все параметры в переменные с номерами:

setlocal enabledelayedexpansion
set /a arg_number=1
for %%a in (%*) do (
    set arg!arg_number!=%%a
    set /a arg_number=!arg_number!+1
)

echo arg1=%arg1%
echo arg10=%arg10%
echo arg11=%arg11%

Вывод:

arg1=value1
arg10=value10
arg11=value11

Другой вариант присваивания значений — сразу в цикле:

setlocal enabledelayedexpansion
set /a arg_number=1
for %%a in (%*) do (
    echo arg_!arg_number!=%%a
    if !arg_number! == 1 set filename=%%a
    if !arg_number! == 2 set directory=%%a
    rem ...
    if !arg_number! == 11 set computer_name=%%a
    set /a arg_number=!arg_number!+1
)
echo filename=%filename%

О параметрах командных файлов и не только | windows

Краткий справочник по использованию параметров для 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.

Как создать bat файл в Windows

&nbsp windows | для начинающих

Нередко советы по тем или иным действиям и исправлениям в Windows 10, 8 и Windows 7 включают в себя шаги наподобие: «создайте файл .bat со следующим содержимым и запустите его». Однако, начинающий пользователь не всегда знает, как это сделать и что собой представляет такой файл.

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

Создание .bat файла с помощью блокнота

Первый и самый простой способ создать bat файл — использовать стандартную программу «Блокнот», присутствующую во всех актуальных версиях Windows.

Шаги по созданию будут следующими

  1. Запустите Блокнот (находится в Программы — Стандартные, в Windows 10 быстрее запустить через поиск в панели задач, если блокнота нет в меню «Пуск», запустить его можно из C:\Windows\notepad.exe).
  2. Введите в блокнот код вашего bat файла (например, скопируйте откуда-то, либо напишите свой, о некоторых командах — далее в инструкции). 
  3. В меню блокнота выберите «Файл» — «Сохранить как», выберите место сохранение файла, укажите имя файла с расширением .bat и, обязательно, в поле «Тип файла» установите «Все файлы». 
  4. Нажмите кнопку «Сохранить».

Примечание: если файл не сохраняется в указанное расположение, например, на диск C, с сообщение «У вас нет разрешения на сохранение файлов в этом месте», сохраните его в папку «Документы» или на рабочий стол, а затем скопируйте в нужное расположение (причина проблемы в том, что в Windows 10 для записи в некоторые папки нужны права администратора, а поскольку блокнот не был запущен от имени администратора, он не может сохранить файл в указанную папку).

Ваш файл .bat готов: если его запустить, будут автоматически выполнены все перечисленные в файле команды (при условии отсутствия ошибок и необходимости прав администратора: в некоторых случаях может потребоваться запускать файл bat от имени администратора: правый клик по файлу .bat — запустить от имени администратора в контекстном меню).

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

Существуют и другие способы сделать bat файл, но все они сводятся к написанию команд по одной команде в строке в текстовый файл в любом текстовом редакторе (без форматирования), который затем сохраняется с расширением .bat (например, в Windows XP и 32-битной Windows 7 вы даже можете создать файл .bat в командной строке с помощью текстового редактора edit).

Если у вас включено отображение расширений файлов (изменяется в панель управления — параметры проводника — вид — скрывать расширения зарегистрированных типов файлов), то вы можете просто создать файл .txt, затем переименовать файл, установив расширение .bat.

Запуск программ в файле bat и другие базовые команды

В командном файле вы можете запускать любые программы и команды из этого списка: https://technet.microsoft.com/ru-ru/library/cc772390(v=ws.10).aspx (правда, некоторые из указанных могут отсутствовать в Windows 8 и Windows 10). Далее — лишь некоторые базовые сведения для начинающих пользователей.

Чаще всего бывают следующие задачи: запуск программы или нескольких программ из .bat файла, запуск какой-то функции (например, очистка буфера обмена, раздача Wi-Fi с ноутбука, выключение компьютера по таймеру).

Для запуска программы или программ используйте команду:

start "" путь_к_программе

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

start "" "C:\Program Files\program.exe"

После пути к программе можно также указать параметры, с которыми она должна запускаться, например (аналогично, если параметры запуска содержат пробелы, возьмите их в кавычки):

start "" c:\windows\notepad.exe file.txt

Примечание: в двойных кавычках после start по спецификациям должно указываться имя командного файла, отображаемое в заголовке командной строки. Это необязательный параметр, но при отсутствии этих кавычек выполнение bat файлов, содержащих кавычки в путях и параметрах может пойти неожиданным образом.

Еще одна полезная возможность — запуск другого bat файла из текущего файла, сделать это можно с помощью команды call:

call путь_к_файлу_bat параметры

Переданные параметры при запуске можно прочитать внутри другого bat файла, например, мы вызываем файл с параметрами:

call file2.bat параметр1 параметр2 параметр3

В file2.bat можно прочесть эти параметры и использовать в качестве путей, параметров для запуска других программ таким образом:

echo %1
echo %2
echo %3
pause

Т.е. для каждого параметра мы используем его порядковый номер со знаком процента. Результатом в приведенном примере будет вывод в окно команд всех переданных параметров (команда echo используется для вывода текста в окно консоли).

По умолчанию, окно команд закрывается сразу после выполнения всех команд. Если нужно прочитать информацию внутри окна, используйте команду pause — она остановит выполнение команд (или закрытие окна) до нажатия любой клавиши в консоли со стороны пользователя.

Иногда, перед выполнением очередной команды нужно подождать некоторое время (например, до полного запуска первой программы). Для этого можно использовать команду:

timeout /t время_в_секундах

При желании, вы можете запустить программу в свернутом виде или развернутом видео с помощью параметров MIN и MAX перед указанием самой программы, например:

start "" /MIN c:\windows\notepad.exe

Для закрытия окна команд после выполнения всех команд (хотя, обычно оно и так закрывается при использовании start для запуска), используйте команду exit в последней строке. В случае, если консоль все равно не закрывается после запуска программы, попробуйте использовать такую команду:

cmd /c start /b "" путь_к_программе параметры

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

cmd /c start "" /d "путь_к_папке_с_пробелами" /b имя_файла_программы "параметры_с_пробелами"

Как уже было отмечено, это лишь очень базовые сведение о наиболее часто используемых командах в bat файлах. При необходимости выполнить дополнительные задачи, попробуйте найти нужную информацию в интернете (поищите, например, «сделать что-то в командной строке» и используйте эти же команды в файле .bat) или задайте вопрос в комментариях, я постараюсь помочь.

А вдруг и это будет интересно:

Команды bat-файлов (Windows)

При работе на компьютере часто возникает необходимость повтора одних и тех же DOS-команд для осуществления периодически исполняемых действий, построения сложной и многоуровневой последовательности исполняемых команд или приложений, автоматизации работы с приложениями и файлами с участием или в отсутствие пользователя. В операционной системе есть возможность записать несколько команд в bat-файле. При этом, просто запуская данный командный файл (часто его называют скрипт, или просто «батник»), можно осуществлять выполнение прописанных команд, а прописав его в событиях планировщика Windows, можно автоматизировать этот процесс.

Особенностью файлов данного типа является отсутствие внутри какого-либо кода — имеется только тактовая информация, которую считывает и исполняет командный DOS-процессор, совместимый практически со всеми версиями операционной системы Windows. Одним из ярких примеров является файл autoexec.bat, который необходим для запуска этой ОС, так как именно он осуществляет ее настройки в ходе запуска.

Основные возможности командных файлов

Команды, которые содержит bat-файл, по функционалу можно условно разделить на несколько групп:

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

Выполнение командных файлов

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

При нахождении командного файла в другом каталоге необходимо кроме полного имени этого файла прописать полный путь до каталога его хранения. Расширение файла также можно не прописывать. Например, текущий каталог d:\photo\work, а командный файл vera.bat, который нужно выполнить с параметрами resize.doc и /p, находится в каталоге d:\photo\home. Тогда для того, чтобы осуществился запуск нашего файла, нужно прописать команду d:\photo\home\vera resize.doc /p или команду ..\home\vera resize.doc /p.

Прерывание работы

Исполняемые после запуска команды bat-файлов можно прервать комбинациями кнопок <Ctrl>+<Break> и <Ctrl>+<C>. На дисплее появится запрос на прерывание выполнения командного файла с запросом, ожидающим ввода Yes или No. Если ввести Y, то выполнение прервется, а оставшийся список команд bat-файла будет проигнорирован. Если введете символ N, то выполнение продолжится со следующей команды из списка.

Вызов другого командного файла

Bat-файлы могут содержать в себе ссылки на исполнение других скриптов. Если просто прописать в теле скрипта bat-файл, команды после него уже исполняться не будут, так как управление передается на другой батник и будут выполнены команды уже из него. Если требуется возврат после запуска внутреннего файла, то его можно вызвать командой CALL. Формат команды выглядит так: CALL имя-бат-файла [параметры запуска].

Параметрами, которые передаются вызываемому командному файлу (файлам), обычно являются символы %1 — %9. Когда команды bat-файлов все последовательно будут пройдены, продолжится выполнение исходного скрипта со следующей строки.

Пошаговое выполнение

Бывают случаи, когда команды bat-файлов нужно выполнить пошагово (с остановкой после каждой строчки). Наиболее часто такой режим требуется при отладке или тестировании скриптов. Написание команды выглядит так: COMMAND /y/c имя _скрипта [параметры].

При выполнении на каждую команду будет выдаваться запрос Y или N. Если требуется выполнение команды — жмем клавишу Enter или Y. Если нужно пропустить команду — жмем ESC или N.

Отключение и включение вывода команд на экран

Когда запускается bat-файл, команды построчно перед выполнением отображаются на экране и после этого выполняются. Иногда это вызывает неудобство, так как при большом батнике команды длинным списком пробегают перед пользователем на экране, а иногда требуется их показ, например, для диалога или отладки. Чтобы bat-файл команды выводил на дисплей, применяется команда ECHO ON. Для отключения этого режима нужно ввести ECHO с параметром OFF. При этом все исполняемые далее команды показываться на экране уже не будут.

Для отключения вывода только какой-либо одной строки батника на экран можно использовать в самом начале этой строки символ @. Чаще всего этот символ можно встретить в паре с командой @ECHO OFF для исключения вывода ее на дисплей монитора. Такой режим часто используют злоумышленники, создавая на основе bat-файлов вирусы или доставляя мелкие и крупные неприятности пользователям компьютеров.

Сообщения при исполнении команд

Если после команды ECHO будут расположены символы, отличные от ON или OFF, то они будут выводиться на экран в любом режиме. Если ECHO будет без параметров, то она выдает на экран состояние режима отображения исполняемых команд — включен или выключен.

При желании можно воспроизвести даже звуковой сигнал (писк) компьютера, используя bat-файл. Команды, примеры которых приведены далее, основаны на операторе ECHO с добавлением специальных символов.

Для воспроизведения звукового сигнала нужно вывести стандартный символ с кодом 7. Сделать это можно, нажав клавишу <alt> и «7» на цифровой клавиатуре (с надписью home).

Для того чтобы повысить удобочитаемость сообщений можно применить команду ECHO с параметром «.» (она ставится сразу за командой без пробела) или специальным символом с кодом 255. На экране это будет выглядеть как пустая строчка.

Команду ECHO можно использовать для вывода сообщений в отдельный файл. Суть ее состоит в перенаправлении вывода сообщений на запись в файл, а не на экран монитора. Для сохранения логов, анкетирования, записи событий можно использовать пакетные файлы bat. Команды вывода имеют следующий формат:

— ECHO-сообщение >> имя файла — команда добавляет строчку в конец существующего файла. Если такого файла в данной директории нет, то создается новый файл.

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

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

Для удобства редактирования скриптов используется команда REM. Все находящиеся после нее команды bat-файлов Windows игнорирует при исполнении. Их можно увидеть при редактировании и при пошаговом режиме. Во всех других случаях комментарии на экран выводиться не будут.

Команда задержки в bat-файле

Иногда во время выполнения батника возникает необходимость временно остановить исполнение команд, например, для ожидания реакции пользователя, для увеличения времени на прочтение длинного сообщения, для вставки диска, подтверждения присутствия пользователя или для отладки пакетного файла. Команда задержки в bat-файле пишется как PAUSE без параметров. При этом на дисплее отобразится сообщение типа «Нажмите любую клавишу для продолжения», и выполнение скрипта будет приостановлено до нажатия кнопки клавиатуры. Если будет нажата комбинация <ctrl>+<break> или <ctrl>+<c>, то система воспримет это как завершение работы исполняемого файла и выдаст запрос на подтверждение завершения его работы: «Прервать выполнение командного файла? (Y/N)». Если нажать клавишу Y, то произойдет прерывание работы скрипта в этом месте и все оставшиеся невыполненные команды будут проигнорированы. При нажатии N выполнение будет продолжаться со следующей команды. При паузе нажатие любых других буквенно-цифровых клавиш, а также «Пробел» и «Ввод» выполнение исполняемого файла будет продолжаться со следующей команды.

Для последовательного исполнения нескольких файлов из списка, находящихся в одной директории, также можно использовать bat-файл. Команды «запуск программы по названию» и «запуск программы по расширению файла» часто могут помочь с автоматизацией обработки документов, например сортировка вложений почты. Отличаются они параметрами для команды FOR. Формат написания ее приведен ниже:

— FOR %x IN (список файлов) DO команда, где:

— х — любой символ, за исключением цифр от 0 до 9;

— список — разделенные пробелами имена файлов или название одного файла; при этом можно использовать спецсимволы «?» и «*» для замены от одного до нескольких знаков в названии файлов;

— команда — любая DOS-команда или программа, кроме FOR; если есть необходимость использования FOR, то вместо %x нужно указать %%x.

При использовании этой команды для написания bat-файлов нужно учитывать, что имена в программах формата DOS имеют ограничение по длине названия. Для того чтобы произвести переключение команды FOR на работу с длинными именами файлов, нужно не забыть перед ней запустить команду LFNFOR ON для включения режима работы с длинными именами и LFNFOR OFF для его отключения и возврата к стандартной длине файлов.

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

Переходы в bat-файлах

Для удобства управления порядком запуска команд в bat-файлах в них часто используют команды переходов и метки, по которым эти переходы осуществляются.
Метка представляет собой любую строку исполняемого файла, которая начинается с символа «двоеточие». Имя метки — это набор символов после двоеточия до конца строки или до первого пробела, после которого остаток строки игнорируется, что можно использовать как комментарий к метке перехода.

Команда перехода имеет написание GOTO с названием метки через пробел. Если параметра нет или название метки в командном файле не обнаружено, то работа скрипта на этой команде прекращается. Пример:

GOTO zzz

:zzz

REM (запускаются требуемые команды).

В этом примере последовательное исполнение командного файла, дойдя до GOTO zzz, переходит на метку :zzz и продолжается с REM, игнорируя все, что находится между командой перехода и указанной меткой.

Использование условий при работе с bat-файлами

Bat-файл может исполнять или не исполнять команды в зависимости от различных условий, если в нем применяется проверка наступления события IF. Формат этой команды выглядит как «IF условие команда».

Условие представляет собой различные варианты выражений:

— ERRORLEVEL число — в том случае, когда предыдущая выполняемая программа закончилась с кодом завершения, равным указанному числовому значению или больше него, условие будет истинным.

— СТРОКА 1 == СТРОКА 2 — в случае полного совпадения строк условие становится истинным. Вместо строк можно подставить символы %0 — %9, тогда будут сравниваться параметры командного файла.

— EXIST — имя файла — если указанный файл существует, то условие истинное.

— NOT — условие — если указанное условие ложное, то на выходе команды получим истинное значение.

Применяемые команды в bat-файлах

Если нажать кнопку «Пуск» и запустить командную строку (cmd), то можно посмотреть все вставляемые в bat-файл команды. CMD-режим можно использовать как средство для отладки, как помощника, программу для получения сведений о командах. Для этого просто можно набрать HELP. При этом выдается список команд с краткими описаниями к ним. Для получения более детальной информации можно ввести HELP с названием нужной команды.

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

Командные файлы сильно упрощают жизнь системным администраторам при осуществлении повседневной работы. Наиболее распространенной сферой их применения являются резервное копирование, создание, удаление, переименование и многое другое. Все это основано на использовании команды bat-файла COPY. К примеру, можно создать программу, которая делает архивные копии документов из выбранной папки с пользовательскими данными определенных форматов, исключив, допустим, медиафайлы большого объема, обеспечив резервирование в папке с именем пользователя и текущей датой, и назвать ее «Команда_копирования_файлов.bat». После этого необходимо обеспечить ее запуск в определенное время с помощью встроенного планировщика или силами самой программы и тем самым обеспечить сохранность данных пользователя.

Параметры / аргументы

— Параметры / аргументы Windows CMD

— Windows CMD — SS64.com

Аргумент (или параметр) командной строки — это любое значение, переданное в пакетный сценарий:

C:> MyScript.cmd Январь 1234 г. «Некоторое значение»

Аргументы также могут быть переданы подпрограмме с помощью CALL:

ЗВОНИТЕ: my_sub 2468

Вы можете получить значение любого аргумента, используя%, за которым следует его числовая позиция в командной строке.Первый переданный элемент всегда% 1 второй элемент всегда% 2 и так далее

% * в пакетном сценарии относится ко всем аргументам (например,% 1% 2% 3% 4% 5 …% 255)
по номеру можно ссылаться только на аргументы от% 1 до% 9.

Расширение параметров

Когда аргумент используется для указания имени файла, то следующий может применяться расширенный синтаксис:

мы используем переменную% 1 (но это работает для любого параметра)

% ~ f1 Расширьте% 1 до полного имени пути — C: \ utils \ MyFile.txt

% ~ d1 Расширить% 1 только до буквы диска — C:

% ~ p1 Расширить% 1 только до пути, например \ utils \ это включает завершающий \, который некоторыми командами будет интерпретироваться как escape-символ.

% ~ n1 Расширить% 1 до имени файла без расширения или пути — MyFile
или, если присутствует только путь, без обратной косой черты в конце, последняя папка на этом пути.

% ~ x1 Расширить% 1 только до расширения файла — .txt

% ~ s1 Измените значение f, n, s и x для ссылки на Short 8.3 имя (если существует.)

% ~ 1 Разверните% 1, удалив все окружающие кавычки («)

% ~ a1 Показать атрибуты файла% 1

% ~ t1 Показать дату / время% 1

% ~ z1 Отображение размера файла% 1

% ~ $ PATH: 1 Найдите переменную среды PATH и раскройте% 1 до полного имени первого найденного совпадения.

Вышеуказанные модификаторы можно комбинировать:

% ~ dp1 Расширить% 1 до буквы диска и пути только

% ~ sp1 Расширить% 1 до пути, сокращенного до 8.3 символа

% ~ nx2 Расширить% 2 до имени файла и расширения только

Эти переменные параметра / аргумента всегда обозначаются одним ведущим%
Это отличается от обычных переменных, которые имеют как начальные, так и конечные символы%, такие как% variable% или командные переменные FOR, которые используют одинарный начальный% в командной строке или двойной начальный %% при использовании в пакетном файле.

Расширение параметра будет рассматривать полную остановку в имени каталога как расширение файла, поэтому для такого имени, как «Пример 2.6.4 «вывод% ~ n1 будет усечен до» Пример 2.6 «, чтобы получить полное имя папки, используйте% 1 или% ~ nx1

Если вывод DIR или имя файла без буквы диска / пути раскрывается для отображения полного пути% ~ f1, командная оболочка примет; часто неправильно; что файл находится в текущем каталоге. Оболочка CMD не читает дескрипторы файлов и не работает с объектами файловой системы так, как это делает PowerShell, она обрабатывает простой список текстовых строк.

При написании пакетных сценариев рекомендуется хранить значения в именованной переменной SET _LogFile =% ~ dp1, тогда остальная часть сценария может ссылаться на легко читаемое имя переменной% _LogFile% Это также сделает жизнь проще, если позже вам потребуется изменить порядок параметров.

Токенизация

Токенизация аргументов командной строки не всегда выполняется оболочкой cmd.exe. Чаще всего токенизация выполняется средой выполнения вновь сформированных процессов, на уровне ОС Windows передает командную строку без проверки подлинности в виде единой строки новому процессу. Вы можете узнать больше о низкоуровневых деталях пакетного языка / cmd, избегая отличных ответов jeb и dbenham на этот вопрос StackOverflow.

Прохождение по ссылке

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

Ссылки относительно пакетного скрипта

Вы можете получить путь к самому пакетному сценарию с% 0, к нему могут быть применены расширения параметров, поэтому% ~ dp0 вернет диск и путь к пакетному сценарию, например. W: \ scripts \ и% ~ f0 вернет полный путь W: \ scripts \ mybatch.cmd

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

 ВЫЗОВ% 0 \ .. \ SecondBatch.cmd 

Это можно даже использовать в подпрограмме, Echo% 0 даст метку вызова, но echo «% ~ nx0» даст вам имя файла пакетного сценария.

Когда переменная% 0 раскрывается, результат заключен в кавычки.

Используйте% ~ a1 для отображения расширенных атрибутов файла.

%% ~ aI

FOR распознает 9 атрибутов файлов NTFS. Расширение атрибута файла дает серию из 9 тире, причем каждый распознанный атрибут заменяет тире буквой. Файл без распознанных атрибутов или без установленных атрибутов будет расширяться до 9 тире, например: ———

 Расширение атрибутов
 FILE_ATTRIBUTE_DIRECTORY d --------
 FILE_ATTRIBUTE_READONLY -r -------
 FILE_ATTRIBUTE_ARCHIVE --a ------
 FILE_ATTRIBUTE_HIDDEN --- ч -----
 FILE_ATTRIBUTE_SYSTEM ---- s ----
 FILE_ATTRIBUTE_COMPRESSED ----- c ---
 FILE_ATTRIBUTE_OFFLINE ------ o--
 FILE_ATTRIBUTE_TEMPORARY ------- t-
 FILE_ATTRIBUTE_REPARSE_POINT -------- l
 FILE_ATTRIBUTE_NORMAL --------- 

Другие атрибуты NTFS, не распознаваемые %% ~ aI, можно прочитать с помощью команды FSUTIL usn:
FILE_ATTRIBUTE_ENCRYPTED
FILE_ATTRIBUTE_NOT_CONTENT_INDEXED
FILE_ATTRIBUTE_SPARSE_FILE

Пример: расширение файла с атрибутами Hidden и System:
— hs —-

Максимальная длина линии

Максимальная длина любой командной строки (или переменной) в CMD составляет 8191 символ.

Терминология: аргумент или параметр командной строки?

С математической точки зрения параметр — это «числовой или другой измеримый коэффициент» , поэтому обычно это число.

В терминологии программирования:
Параметр представляет собой значение, которое процедура ожидает от вас при вызове.
Аргумент представляет собой фактическое значение, которое вы передаете процедуре.

На практике фразы аргумент и параметр , как правило, используются взаимозаменяемо, командные файлы CMD не выполняют никакой проверки типов.

ДЛЯ параметров

Команда FOR создает переменные параметров, которые обозначаются буквой, а не числом (например, %% G).
К ним также можно применить описанные выше расширения параметров.
Чтобы избежать путаницы между двумя наборами букв, избегайте использования букв (a, d, f, n, p, s, t, x, z) в качестве параметров FOR или просто выберите букву параметра FOR в ВЕРХНЕМ регистре.
Так, например, в ссылке типа %% ~ fG %% G является параметром FOR, а ~ f — расширением параметра.

Примеры:

Передавать параметры из одного пакета в другой:

 MyBatch.cmd СМИТ 100 

Или как часть ЗВОНИТЕ:

 ВЫЗОВ MyBatch.cmd СМИТ 100 

Получите размер файла C: \ demo \ sample.xlsx, используя расширение параметра% ~ z:

 @ Эхо выключено
   Для %% G в ("C: \ demo \ sample.xlsx") установите _var = %% ~ zG
   Размер эхо-файла% _var% 

Передача значений из одной части скрипта в другую:

 :: Использование CALL для перехода к подпрограмме
   ЗВОНИТЕ: s_staff СМИТ 100

   :: Вызов подпрограммы из команды FOR
   FOR / F %% G IN ('DIR / b *.* ') НЕОБХОДИМО вызвать: s_subroutine %% G 

«Я пришел сюда для веского аргумента. Нет, вы этого не сделали, вы пришли сюда для аргумента» ~ Монти Пайтон

Связанный:

CALL — Вызов одной пакетной программы из другой.
CMD — запуск новой оболочки DOS (cmd.exe).
IF — Проверить наличие необходимых входных данных (не NULL).
FOR — Условно выполнить команду несколько раз.
SETLOCAL — Управление видимостью переменных среды.
SHIFT — Сдвинуть позицию заменяемых параметров в пакетном файле.
StackOverflow — Скрипт для анализа необязательных аргументов от Дэйва Бенхама.
Как параметры командной строки анализируются Дэвидом Дели.
Ошибка при использовании ~ s для отображения коротких имен файлов / папок.
StackOverflow — Как интерпретатор команд Windows (CMD.EXE) анализирует сценарии?
Эквивалентная команда bash (Linux): dirname — преобразует полный путь в просто путь.


Авторские права © 1999-2020 SS64.com
Некоторые права защищены.

окон — Как использовать более 9 аргументов при вызове метки в пакетном сценарии CMD?

Переполнение стека
  1. Около
  2. Продукты
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
  3. Вакансии Программирование и связанные с ним технические возможности карьерного роста
  4. Талант Нанимайте технических специалистов и создавайте свой бренд работодателя
  5. Реклама Обратитесь к разработчикам и технологам со всего мира
  6. О компании
.

cmd — Слишком много параметров в файлах bat

Переполнение стека
  1. Около
  2. Продукты
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
  3. Вакансии Программирование и связанные с ним технические возможности карьерного роста
  4. Талант Нанимайте технических специалистов и создавайте свой бренд работодателя
  5. Реклама Обратитесь к разработчикам и технологам со всего мира
  6. О компании
.

Что означает% ~ d0 в пакетном файле Windows?

Переполнение стека
  1. Около
  2. Продукты
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
  3. Вакансии Программирование и связанные с ним технические возможности карьерного роста
  4. Талант Нанимайте технических специалистов и создавайте свой бренд работодателя
  5. Реклама Обратитесь к разработчикам и технологам со всего мира
  6. О компании
.

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

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

Theme: Overlay by Kaira Extra Text
Cape Town, South Africa