PowerShell中如何用数组生成多--input参数调用legacy命令foo
动态生成重复同名参数调用Legacy命令foo的PowerShell写法
你可以通过构造扁平参数数组的方式,自动为$my_args中的每个元素生成--input <value>参数对,写法简洁且适配任意数组长度:
方法一:分步构造(可读性优先)
# 遍历数组,为每个元素生成对应的--input参数对 $commandParams = $my_args | ForEach-Object { '--input', $_ } # 调用foo命令,传入所有生成的参数和目标文件 foo @commandParams filename.dat
方法二:紧凑写法(一行完成)
foo (@($my_args | ForEach-Object { '--input', $_ })) filename.dat
原理说明
ForEach-Object { '--input', $_ }会遍历$my_args的每个元素,每次返回两个值:--input和当前元素,PowerShell会自动将这些值收集为扁平数组(比如三个元素会生成['--input','first','--input','second','--input','third'])。- 使用
@commandParams(参数展开,即splatting)或直接传入数组,PowerShell会按顺序将数组元素作为命令参数传递,效果和手动逐个编写--input完全一致。 - 若元素包含空格或特殊字符,PowerShell会自动处理引号转义,无需额外操作。
内容的提问来源于stack exchange,提问作者aSteve
相关产品推荐
相关产品推荐

