PowerShell指令碼傳遞引數

2022-06-15 10:00:10 字數 1253 閱讀 4459

在編寫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這種方式進行獲取。下面的例子定義了短引...