在編寫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
PowerShell指令碼傳遞引數
在編寫powershell指令碼的時候,可以通過給變數賦值的方法輸出想要的結果,但這樣的話,需要改動指令碼內容。其實也可以在指令碼中定義引數,然後再在執行指令碼的時候對引數賦值,而無需改動指令碼內容。在powershell指令碼中,可以使用param 宣告引數,如下 param a,b write ...
PowerShell指令碼傳遞引數
在編寫powershell指令碼的時候,可以通過給變數賦值的方法輸出想要的結果,但這樣的話,需要改動指令碼內容。其實也可以在指令碼中定義引數,然後再在執行指令碼的時候對引數賦值,而無需改動指令碼內容。在powershell指令碼中,可以使用param 宣告引數,如下 param a,b write ...
linux shell指令碼通過引數名傳遞引數值
平常在寫shell指令碼都是用 1,2.這種方式來接收引數,然而這種接收引數的方式不但容易忘記且不易於理解和維護。linux常用的命令都可指定引數名和引數值,然而我們怎樣才能給自己的shell指令碼也採用引數名和引數值這樣的方式來獲取引數值呢?而不是通過 1,2這種方式進行獲取。下面的例子定義了短引...