2015-06-01 9 views
-1

В сценарии оболочки Unix можно использовать что-то вроде этого для разбора аргументов в скрипт:Как перебирать аргументы скрипта?

while [ $1 ]; do 
    # 
    # do stuff 
    # 
    shift 
done 

Как реализовать что-то подобное в PowerShell?

+2

вы на самом деле не объяснить свою проблему, я думаю , Во всяком случае, трудно понять, о чем вы спрашиваете. –

+0

Вообще-то, я не согласен с тем, что вопрос нуждается в том, чтобы * это разъяснение, хотя оно неловко сформулировано. Он явно хочет знать, может ли он перебирать список аргументов сценария PowerShell, как это сделано в оболочках Unix/Linux. –

+2

В PowerShell обрабатывается набор аргументов '$ args' с циклом, например. 'foreach ($ a в $ args) {...}' или '$ args | % {...} '. –

ответ

1

Для необъявленных параметров, вы можете использовать $Argsautomatic variable в @AnsgarWeichers предлагает ни с одним из методов Foreach (смотри ниже), но я бы поспорил метод Unix вы описываете против философии PowerShell. PowerShell - это среда .Net, поэтому все является принципиально объектом, а не принципиально символьной строкой.

Вы должны определять свои параметры, указывая им тип и, прежде всего, указывая имя. См. about_Parameters, about_Functions, about_Functions_Advanced и about_Functions_Advanced_Parameters. Сценарий может быть написан для работы как командлет или функция, поэтому вы обращаетесь к этим справочным документам.

Если параметр законно массив, вы можете перемещаться по нему с либо foreach statement:

foreach ($item in $MyParameterArray) { 
    [...] 
} 

Или с помощью ForEach-Object cmdlet:

$MyParameterArray | ForEach-Object { 
    [...] 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^