Gre*_*ray 11 arrays powershell brace-expansion
编写Bash脚本时,您可以使用大括号扩展来快速生成列表:

在Powershell中生成类似列表的最简单方法是什么?我可以使用..或者运算符来生成数组,但是如何使用静态字符串文字为项添加前缀?
PS C:\Users\gb> 1..5
1
2
3
4
5
PS C:\Users\gb> "test"+1..5
test1 2 3 4 5
PS C:\Users\gb> "test","dev","prod"
test
dev
prod
PS C:\Users\gb> "asdf"+"test","dev","prod"
asdftest dev prod
Run Code Online (Sandbox Code Playgroud)
Bil*_*art 11
PS C:\> "test","dev","prod" | % { "server-$_" }
server-test
server-dev
server-prod
PS C:\> 1..5 | % { "server{0:D2}" -f $_ }
server01
server02
server03
server04
server05
PS C:\> 1..5 | % { "192.168.0.$_" }
192.168.0.1
192.168.0.2
192.168.0.3
192.168.0.4
192.168.0.5
Run Code Online (Sandbox Code Playgroud)
请注意,%是ForEach-Object cmdlet 的别名.
法案
我希望能在这里是错误证明,但我不相信有办法做到这一点恰好喜欢使用bash,或尽可能少的按键.
您可以通过管道遍历列表来迭代列表,foreach-object以实现相同的结果.
1..5 | foreach-object { "test" + $_ }
或使用速记:
1..5 | %{"test$_"}
在这两种情况下(%是别名foreach-object),输出为:
test1
test2
test3
test4
test5
Run Code Online (Sandbox Code Playgroud)
注意:如果您将其构建为用于发布/分发/重用的脚本,请使用更详细foreach-object,而不是简写%- 以提高可读性.