Подтвердить что ты не робот

Что означает% * в пакетном файле

Я видел использование% * в пакетных файлах и командных строках. Googling не дал мне никаких результатов. Может ли кто-то объяснить типичное использование% * с примером. Спасибо

4b9b3361

Ответ 1

Это означает "все параметры в командной строке".

Например, это полезно, когда вы хотите переслать командную строку из вашего пакетного файла в другую программу:

REM mybatchfile.cmd
echo You called this with arguments: %*
echo I will now forward these to the DIR command.
dir %*

Ответ 2

Один важный момент, который не указан ни в одном из предыдущих ответов: %* расширяется до всех параметров из командной строки даже после операции SHIFT.

Обычно a SHIFT будет перемещать параметр %2 в %1, %3 в %2 и т.д., а %1 больше не доступен. Но %* игнорирует любой SHIFT, поэтому полный список параметров всегда доступен. Это может быть и благословением, и бичем.

Ответ 3

%* расширяется до полного списка аргументов, переданных в script.

Обычно вы используете его, когда хотите вызвать какую-либо другую программу или script, и передать те же аргументы, которые были переданы вашему script.

Ответ 4

"Модификатор% * - это уникальный модификатор, который представляет все аргументы, переданные в пакетном файле. Вы не можете использовать этот модификатор в комбинации с модификатором% ~. Синтаксис% ~ должен быть прерван допустимым значением аргумента."

Смотрите: http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/percent.mspx?mfr=true