确定运行脚本时传递的参数

ѕтƒ*_*ѕтƒ 4 powershell command-line-arguments

我有一个简单的代码,接受两个参数.参数是可选的.下面是代码.

[CmdletBinding()]
Param(
  [Parameter(Mandatory=$False)]
   [string]$pA,

   [Parameter(Mandatory=$False)]
   [string]$pB
)
Run Code Online (Sandbox Code Playgroud)

在运行脚本时,我想知道传递了哪个参数.pApB.

CB.*_*CB. 7

$MyInvocation.BoundParameters
Run Code Online (Sandbox Code Playgroud)

使用所有传递的参数返回ps自定义字典对(键/值).

这是a.ps1文件的内容:

[CmdletBinding()]
Param(
  [Parameter(Mandatory=$False)]
   [string]$pA,

   [Parameter(Mandatory=$False)]
   [string]$pB
)
$MyInvocation.BoundParameters
Run Code Online (Sandbox Code Playgroud)

运行此脚本给出:

PS C:\ps> a -pA pAparam

Key                                                         Value
---                                                         -----
pA                                                          pAparam
Run Code Online (Sandbox Code Playgroud)

然后你可以检查出现了什么键:

[bool]($MyInvocation.BoundParameters.Keys -match 'pa') # or -match 'pb' belong your needs
Run Code Online (Sandbox Code Playgroud)