Powershell命令行参数未填充

时间:2019-07-02 16:19:03

标签: powershell parameters

在调用Powershell脚本以实际填充脚本中的参数变量时,我似乎无法获得给定的命令行参数。

我正在运行一个简单的Powershell脚本,并传递一个命令行参数。我要做的就是显示参数。但是似乎没有填充该参数。

我尝试了一些在网上找到的变体,其中一些使用args [0],但我似乎无法理解。这应该是一件简单的事情!我想念什么?

这是我正在运行的.ps1脚本,称为MyScript1.ps1:

param(
[String]$p1
)
Write-Host "Param p1 = <$p1>"

我从命令提示符下这样称呼它:

H:\> MyScript.ps1 -p1 myvalue

我希望它显示以下内容:

  

Param p1 =

但它显示以下内容:

  

Param p1 = <>

我在做什么错了?

1 个答案:

答案 0 :(得分:0)

我已经解决了这个问题,这要归功于JosejZ的评论。

当我通过Windows命令提示符调用脚本时,如下所示:

C:\>MyScript.ps1 -p1 myvalue

然后不填充p1。但是,如果我通过Powershell这样调用脚本:

C:\>powershell -file ./MyScript.ps1 -p1 myvalue

然后填充p1 ,我得到了预期的输出。

我没有意识到从Windows命令提示符下调用脚本所导致的行为与从Powershell命令提示符下调用脚本所导致的行为不同。