【问题标题】:Putting an array value into a string in powershell [duplicate]将数组值放入powershell中的字符串中[重复]
【发布时间】:2018-07-26 03:45:52
【问题描述】:

我很难理解字符串值如何与 powershell 中的数组一起使用。我想知道将数组放入字符串的正确语法。目前,这就是我正在尝试的。方括号似乎被注册为字符串而不是变量的一部分。

$array = @(2,3,5)

$string = " I have $array[2] apples"

这输出我有 2 3 5[2] 个苹果

【问题讨论】:

  • 使用 $($array[2]) $() 作为 powershell 运行里面的任何东西
  • 还有-f 运算符;例如:"I have {0} apples" -f $array[2]

标签: arrays string powershell


【解决方案1】:

[2] 被读取为字符串。使用$($array[2]) 将该部分作为powershell 运行。

$array = @(2,3,5)

"I have $($array[2]) apples"

这会输出I have 5 apples

在 cmets 中,您询问如何为此执行 for 循环。

在 powershell 中,您应该尽可能使用管道,管道命令是 |

@(2,3,5) | foreach-object{
    "I have $_ apples"
}

【讨论】:

  • 谢谢!我想知道这是否也适用于 $(array[$i]) 其中 $i 是由 for 循环声明的变量。
  • 我在解决方案中回答了您的评论
  • @J.Tam 通过自己的评论回答您的问题$array = @(2,3,5);for($i=0;$i -le 2;$i++){"I have $($array[$i]) apples"}
  • 对于内存中的集合,我建议不要使用管道,至少不要在不解释性能影响的情况下这样做。
  • 我知道这已经很老了,但是这些性能影响可能是什么?我通常使用 C#,但是现在正在做一些 PowerShell,并且正要像往常一样做一个 for 循环,但是遇到了这个答案,并打算使用上面的“PowerShell 方式”并管道它,但后来我看到了这个评论,现在我不知道我应该使用什么。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-27
  • 2012-10-07
  • 1970-01-01
  • 1970-01-01
  • 2019-07-15
  • 1970-01-01
相关资源
最近更新 更多