PowerShell腳本傳遞參數


在編寫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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM