理解PowerShell中的循环结构

时间:2017-09-29 15:09:28

标签: powershell

请指导我如何从b到z打印字母 在for循环中。 我想要下面的东西:

for x in {b..z} {
testdata.$x }

我尝试了以下但有点混乱我只想用我的testdata打印a..z,我应该把testdata放在哪里

$alphabet = @()  

for ([byte]$c = [char]'b'; $c -le [char]'d'; $c++)  
{  
    $alphabet += [char]$c  
}  

[String]::Join(", ", $alphabet) 

Tq

3 个答案:

答案 0 :(得分:1)

这样的事情:

for ([byte]$c = [char]'b'; $c -le [char]'z'; $c++)  
{  
    "testdata.$([char]$c)"  
}  

答案 1 :(得分:1)

[char]类型加速器将整数值转换为其等效的ASCII字符(从技术上讲,它实际上是ANSI字符等价物,但我们现在忽略它,因为它与手头的事情无关)。

如果您查看ASCII table,您会看到大写字母AZ的范围是65到90,小写字母az是从97到122.用于构建字符“b”到“z”的列表“使用range operator获取整数值98到122的列表,并将它们转换为[char]

$alphabet = 98..122 | ForEach-Object { [char]$_ }

答案 2 :(得分:1)

您的原始代码,141个字符。

Autosvet的代码,52个字符。

Ansgar Wiecher的代码,49个字符

编写字母表并将其转换为字符数组更短更清晰:

$alphabet = [char[]]'bcdefghijklmnopqrstuvwxyz'

e.g

$alphabet | foreach-object {

    "testing-$_"

}