在編寫PowerShell腳本的時候,可以通過給變量賦值的方法輸出想要的結果,但這樣的話,需要改動腳本內容。其實也可以在腳本中定義參數,然后再在執行腳本的時候對參數賦值,而無需改動腳本內容。
在PowerShell腳本中,可以使用param()聲明參數,如下:
param($a,$b)
write-host "Hello,$a"
write-host "nihao,$b"
將以上內容保存在F盤根目錄下,命名為hello.ps1。
在命令提示符下運行該腳本,並分別為參數$a和$b指定值為“Lily”和“Lucy”,方式如下:
C:\Users\Administrator>powershell.exe F:\hello.ps1 Lily Lucy
腳本執行結果為:
Hello,Lily
nihao,Lucy
如果需要改變參數位置,需要為不同的參數指定值,如將$a指定值為“Lucy”,$b指定值為“Lily”,方式如下:
C:\Users\Administrator>powershell.exe F:\hello.ps1 -b Lily -a Lucy
腳本執行結果為:
Hello,Lucy
nihao,Lily
在聲明參數的時候,還可以指定參數類型,如下:
param([string]$a,[int]$b)
$a+$b
在給腳本傳遞參數的時候,如果為$a和$b指定參數類型為string,則會報錯,如下:
C:\Users\Administrator>powershell.exe F:\hello.ps1 -a LiLei -b Lin
F:\hello.ps1 : 無法處理對參數“b”的參數轉換。無法將值“Lin”轉換為類型“System.
Int32”。錯誤:“輸入字符串的格式不正確。”
所在位置 行:1 字符: 25
+ F:\hello.ps1 -a LiLei -b <<<< Lin
+ CategoryInfo : InvalidData: (:) [hello.ps1], ParameterBindin...
mationException
+ FullyQualifiedErrorId : ParameterArgumentTransformationError,hello.ps1
只有為其賦予int類型值才可以,如下:
C:\Users\Administrator>powershell.exe F:\hello.ps1 -a 5 -b 6
11