大家好,
我正在尝试使用来自变量的参数在 PowerShell 中执行一个函数我不确定它是否可能以我想要的方式进行,但也许有人知道我将如何去做。
$scriptPath = "C:\temp\Create-File.ps1"
$parameters = "-Path C:\temp\testfile.txt -DoSomethingSpecial"
& $scriptPath $parameters
沿着这些思路,我不知道参数的输入顺序,所以我不能使用 $args[n..m] 或按位置绑定(bind)。也许还有其他一些我不知道的 Cmdlet 能够做到这一点?
最佳答案
像@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
关于带有变量参数的 Powershell 调用运算符(&),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52587039/