繁体   English   中英

启动时使用Powershell脚本的争论

[英]Arguments with Powershell Scripts on Launch

与在C和其他语言中一样,您可以在物理执行脚本时为脚本/ .exe参数指定。 例如:

myScript.exe Hello 10 P

其中Hello,10和P被传递给程序本身的某个变量。

在Powershell中这可能吗? 如果是这样,你如何将这些args赋予给定的$变量

谢谢!

使用如下的param块定义脚本:

-- Start of script foo.ps1 --
param($msg, $num, $char)

"You passed in $msg, $num and $char"

您还可以进一步输入限定参数,例如:

-- Start of script foo2.ps1 --
param([string]$msg, [int]$num, [char]$char)

"You passed in $msg, $num and $char"

您还可以指定默认值和所需值,例如:

-- Start of script foo3.ps1 --
param([string]$msg=$(throw "Msg param is required"), [int]$num, [char]$char="P")

"You passed in $msg, $num and $char"

您可以使用高级功能(指定属性来验证参数等)来获得更好的功能。 但这应该让你去。

只是@Keith Hill回答的补充......

当你谈到'C'时,你也可以使用自动变量 $args编写带参数的脚本。

$Args包含传递给函数,脚本或脚本块的未声明参数和/或参数值的数组。

-- Start of script foo3.ps1 --
if ($args.length -gt 0)
{
  write-host "first param is $($args[0])"
}

for ($i=0 ; $i -lt $args.length ; $i++)
{
  write-host "$i) " $args[$i]
}

你可以调用thr脚本

.\foo3.ps1 coucou bonjour "hello world"
first param is coucou
0)  coucou
1)  bonjour
2)  hello world

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM