大家好,
我正在尝试在PowerShell中使用来自变量的参数执行函数,我不确定是否可以以我希望的方式实现,但也许有人知道我将如何去做。< / p>
$((i++))
沿这些方向,我不知道输入参数的顺序,所以我不能使用$ args [n..m]或按位置绑定。也许还有其他我不知道的Cmdlet能够做到这一点?
答案 0 :(得分:3)
您可以使用hastable和Splatting进行此操作。
只需像普通的hastable一样,简单地在变量中设置每个参数名称和值,然后使用@params
语法将其传入。
但是,switch参数需要一个$true
值才能正常运行。
$params = @{
Path = 'C:\temp\testfile.txt'
DoSomethingSpecial = $true
}
.\Create-File.ps1 @params
答案 1 :(得分:1)
您可以通过Start-Process运行它
String tuitionName = nameSnapshot.child("adstuitioname").getValue(String.class).toString();
答案 2 :(得分:0)
按照答案中的@James C.的建议传递对象仅允许以Powershell语法传递参数(例如-param1 value1 -param2 value2
)
当您需要对传递的参数进行更多控制时,例如:
--param1 value1
的双破折号语法/param1 value1
的斜杠语法-param1=value1
或-param1:value1
-boolean_param1
无值value1 value2
您可以使用数组代替对象
例如,以ipconfig
命令来更新名称中带有“ con”的所有连接:
$cmd = "ipconfig"
$params = @('/renew', '*Con*');
& $cmd $params
或给出的具体问题示例:
$params = @('-Path', 'C:\temp\testfile.txt', '-DoSomethingSpecial')
.\Create-File.ps1 @params