簡體   English   中英

啟動時使用Powershell腳本的爭論

[英]Arguments with Powershell Scripts on Launch

與在C和其他語言中一樣,您可以在物理執行腳本時為腳本/ .exe參數指定。 例如:

myScript.exe Hello 10 P

其中Hello,10和P被傳遞給程序本身的某個變量。

在Powershell中這可能嗎? 如果是這樣,你如何將這些args賦予給定的$變量

謝謝!

使用如下的param塊定義腳本:

-- Start of script foo.ps1 --
param($msg, $num, $char)

"You passed in $msg, $num and $char"

您還可以進一步輸入限定參數,例如:

-- Start of script foo2.ps1 --
param([string]$msg, [int]$num, [char]$char)

"You passed in $msg, $num and $char"

您還可以指定默認值和所需值,例如:

-- Start of script foo3.ps1 --
param([string]$msg=$(throw "Msg param is required"), [int]$num, [char]$char="P")

"You passed in $msg, $num and $char"

您可以使用高級功能(指定屬性來驗證參數等)來獲得更好的功能。 但這應該讓你去。

只是@Keith Hill回答的補充......

當你談到'C'時,你也可以使用自動變量 $args編寫帶參數的腳本。

$Args包含傳遞給函數,腳本或腳本塊的未聲明參數和/或參數值的數組。

-- Start of script foo3.ps1 --
if ($args.length -gt 0)
{
  write-host "first param is $($args[0])"
}

for ($i=0 ; $i -lt $args.length ; $i++)
{
  write-host "$i) " $args[$i]
}

你可以調用thr腳本

.\foo3.ps1 coucou bonjour "hello world"
first param is coucou
0)  coucou
1)  bonjour
2)  hello world

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM