在PowerShell中多次重复命令的一部分

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在PowerShell中多次重复命令的一部分相关的知识,希望对你有一定的参考价值。

我有一个保存在变量$command中的命令,类似这样$command = path\to\.exe$command具有参数-f,它表示文件的路径。可以在同一行中多次重复此参数,以在多个文件上执行命令,而不必每次在每个文件上执行命令时都重新加载必要的模型。

示例:如果我有3个文件,则需要在其上运行命令,然后可以像这样执行它:

& $command -f 'file1' -f 'file2' -f 'file3' -other_params

[我想知道如果我有100个文件,那么在PowerShell中是否可以执行任何操作,因为我显然不能尝试手动传递100个参数。

答案

如果我理解您的问题,这是一种方法:

$fileList = @(
  "File 1"
  "File 2"
  "File 3"
  "File 4"
)
$argList = New-Object Collections.Generic.List[String]
$fileList | ForEach-Object 
  $argList.Add("-f")
  $argList.Add("0" -f $_)

$OFS = " "
& $command $argList

在此示例中,传递给$command的命令行参数将为:

-f "File 1" -f "File 2" -f "File 3" -f "File 4"
另一答案
# Open-ended array of input file names.
$files = 'file1', 'file2', 'file3'

& $command ($files.ForEach( '-f', $_ )) -other_params

以上是关于在PowerShell中多次重复命令的一部分的主要内容,如果未能解决你的问题,请参考以下文章

如何在 C# 中解析 powershell 样式的命令行参数 [重复]

powershell和powershell ise到底分别干啥用,powershell命令那么长怎么记

c# - 如何在运行时从模块代码中获取 PowerShell 模块版本

CMD和win powershell有啥区别

命令不适用于Powershell中的变量[重复]

为自动执行设置 PowerShell 脚本