Что означает% * в пакетном файле
Я видел использование% * в пакетных файлах и командных строках. Googling не дал мне никаких результатов. Может ли кто-то объяснить типичное использование% * с примером. Спасибо
Ответы
Ответ 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