鑒于:
- PowerShell 5.1
- Azure DevOps 服務器 2019
我試圖直接從我的 Azure PowerShell 任務引數呼叫我的函式,這可能嗎?我沒有得到任何預期的輸出。
param([String] $Name, [Int] $Age, [String] $Path)
Function Foo
{
Param(
[String]
$Name
,
[Int]
$Age
,
[string]
$Path
)
Process
{
write-host "Hello World"
If ("Tom","Dick","Jane" -NotContains $Name)
{
Throw "$($Name) is not a valid name! Please use Tom, Dick, Jane"
}
If ($age -lt 21 -OR $age -gt 65)
{
Throw "$($age) is not a between 21-65"
}
IF (-NOT (Test-Path $Path -PathType ‘Container’))
{
Throw "$($Path) is not a valid folder"
}
# All parameters are valid so New-stuff"
write-host "New-Foo"
}
}

更新 3

更新 2

更新 1

uj5u.com熱心網友回復:
如果您直接執行腳本,它只會定義函式,Foo但從不呼叫它。
將以下內容放在腳本中的函式定義之后,以便使用腳本本身接收的引數呼叫它,使用通過splatting的自動$args變數:
Foo @args
另一種方法是不呼叫腳本檔案,而是呼叫一段 PowerShell 代碼(在 PowerShell CLI 術語中,這意味著使用-Command引數而不是) ,-File這將允許您使用點源運算子首先加載函式定義進入呼叫者的范圍,然后允許呼叫它:.
. "$(System.DefaultWorkingDirectory)/_RodneyConsole1Repo/FunctionExample.ps1"
Foo -Name Rodney -Age 21 -Path ""
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/478631.html
標籤:天蓝色 电源外壳 天蓝色的devops
