Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
未填充Powershell命令行参数_Powershell_Parameters - Fatal编程技术网

未填充Powershell命令行参数

未填充Powershell命令行参数,powershell,parameters,Powershell,Parameters,调用Powershell脚本以实际填充脚本中的参数变量时,我似乎无法获得给定的命令行参数 我正在运行一个简单的Powershell脚本,并传入一个命令行参数。我只想显示参数。但该参数似乎没有被填充 我在网上找到了几种变体,其中一些使用args[0],但我似乎无法得到它。这应该是一件直截了当的事情!我错过了什么 下面是我正在运行的.ps1脚本,名为MyScript1.ps1: param( [String]$p1 ) Write-Host "Param p1 = <$p1>" 我希望

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

我正在运行一个简单的Powershell脚本,并传入一个命令行参数。我只想显示参数。但该参数似乎没有被填充

我在网上找到了几种变体,其中一些使用args[0],但我似乎无法得到它。这应该是一件直截了当的事情!我错过了什么

下面是我正在运行的.ps1脚本,名为MyScript1.ps1:

param(
[String]$p1
)
Write-Host "Param p1 = <$p1>"
我希望这会显示:

参数p1=

但它显示了这一点:

参数p1=


我做错了什么?

多亏了约瑟夫的评论,我已经解决了这个问题

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

C:\>MyScript.ps1 -p1 myvalue
C:\>powershell -file ./MyScript.ps1 -p1 myvalue
则p1未填充。但是,如果我通过Powershell这样调用脚本:

C:\>MyScript.ps1 -p1 myvalue
C:\>powershell -file ./MyScript.ps1 -p1 myvalue
然后填充p1,得到预期的输出


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

我从
\MyScript.ps1-p1 myvalue
(Powershell提示符)获取
参数p1=
以及来自
powershell-noprofile-命令。\MyScript.ps1-p1 myvalue
(Windows
cmd
提示符)。也无法复制。我知道这是一个愚蠢的注释,但您的帖子引用了
MyScript1.ps1
作为脚本内容。然而,您的示例调用了
MyScript.ps1
。有可能实际上有两个脚本,而你调用的是错误的吗?@AdminOfThings,很好,但那只是一个输入错误。我只有一个脚本。