带有变量参数的 Powershell 调用运算符(&)

标签 powershell

大家好,

我正在尝试使用来自变量的参数在 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 )

当您需要对传递的参数进行更多控制时,例如:

  • unix 风格的双破折号语法--param1 value1
  • Windows 风格的斜杠语法 /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/

    相关文章:

    c# - 如何将此 PowerShell 脚本转换为 C# 代码以创建简单的 URL?

    windows - PowerShell - 从 URL 中不包含文件名的 URL 下载文件

    mysql - 无法从 powershell 启动 MySql

    Azure DevOps - PowerShell 输出为文件

    PowerShell 字符串格式 : Why is the colon character causing my variable's value to be blank?

    powershell - 如果不存在,如何使用 powershell 将 assemblyBinding BindingRedirect 添加到 web.config 或 app.config

    powershell - 将get-childitem传递到powershell中的选择字符串中

    powershell - 未加载 SQLASCmdlets,因为在任何模块目录中均未找到有效的模块文件

    powershell - Powershell 和 Try-Catch 以及外部 EXE 的输出重定向/捕获问题

    powershell - 您不能在空值表达式上调用方法