【问题标题】:Expand list in PowerShell在 PowerShell 中展开列表
【发布时间】:2015-08-28 23:45:31
【问题描述】:

bash我写了
echo prefix{t1,t2,t3}suffix
并得到了
prefixt1suffix prefixt2suffix prefixt3suffix

PowerShell 中是否存在类似的内容? 我的意思是列表扩展。

【问题讨论】:

标签: powershell


【解决方案1】:

没有自动扩展,但您可以使用ForEach-Object cmdlet 或PS 4 and higher 中数组的ForEach 方法轻松完成:

't1', 't2', 't3' | ForEach-Object {'prefix' + $_ + 'suffix'}

@('t1', 't2', 't3').ForEach({'prefix' + $_ + 'suffix'})

【讨论】:

  • 这不是一个解决方案,但已经足够好了。谢谢。
  • @OlegG 我很好奇,您是否有任何具体原因要求列表扩展与 bash 中的完全一样?因为我相信内部 bash 也会循环通过集合,所以没有其他方法可以做到这一点。 PowerShell 只是没有这个特定的快捷方式,仅此而已。
  • 只需将 Bash 命令行 vim -d /some/directory/file{1,2}.ps1 与我在 PowerShell 中编写的进行比较,您就会明白我的原因。
  • @OlegG 我明白了。这是真的,尽管它的名字 PowerShell 在“shell”方面确实缺乏。也许你可以试试PSReadline module - 它确实试图为 PS 带来 *nix shell 体验(不过没有列表扩展)。
【解决方案2】:

其他几种方法是:

't1', 't2', 't3' | % {"prefix$($_)suffix"}

't1', 't2', 't3' | % {'prefix{0}suffix' -f $_}

【讨论】:

  • 这不是一个解决方案,但也很好。谢谢。
猜你喜欢
  • 2015-02-21
  • 2020-10-28
  • 2021-09-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-15
  • 2019-07-09
相关资源
最近更新 更多