在调用Powershell脚本以实际填充脚本中的参数变量时,我似乎无法获得给定的命令行参数。
我正在运行一个简单的Powershell脚本,并传递一个命令行参数。我要做的就是显示参数。但是似乎没有填充该参数。
我尝试了一些在网上找到的变体,其中一些使用args [0],但我似乎无法理解。这应该是一件简单的事情!我想念什么?
这是我正在运行的.ps1脚本,称为MyScript1.ps1:
param(
[String]$p1
)
Write-Host "Param p1 = <$p1>"
我从命令提示符下这样称呼它:
H:\> MyScript.ps1 -p1 myvalue
我希望它显示以下内容:
Param p1 =
但它显示以下内容:
Param p1 = <>
我在做什么错了?
答案 0 :(得分:0)
我已经解决了这个问题,这要归功于JosejZ的评论。
当我通过Windows命令提示符调用脚本时,如下所示:
C:\>MyScript.ps1 -p1 myvalue
然后不填充p1。但是,如果我通过Powershell这样调用脚本:
C:\>powershell -file ./MyScript.ps1 -p1 myvalue
然后填充p1 ,我得到了预期的输出。
我没有意识到从Windows命令提示符下调用脚本所导致的行为与从Powershell命令提示符下调用脚本所导致的行为不同。