我需要生成以字母表开头的用户名,后跟日期,以1到20的数字结尾。共有520个名字。 以下是我提出的变量:
$letter = 97..122 | foreach {[char]$_}
$date = get-date -UFormat %a%y%d
$name = $letter | ForEach-Object { $_ + $date }
所以我设法把我的信件和日期放在一起,形成像 aWed1513 这样的名字,这正是我所需要的,但是当谈到让每个人都以数字结尾时,我和#39我被卡住了通过向$ name添加递增$ i来尝试使用For循环,但是没有工作..
答案 0 :(得分:5)
看起来你就是在那里。您的for
循环应如下所示:
$names = @()
$letter = 97..122 | foreach {[char]$_}
$date = get-date -UFormat %a%y%d
for($i = 1; $i -le 20; $i++) {
$names += $letter | ForEach-Object { '{0}{1}{2}' -f $_, $date, $i }
}
$names
答案 1 :(得分:0)
另一种解决方法是给OP的原始代码添加另一个ForEach-Object:
$letter = 97..122 | foreach {[char]$_}
$date = get-date -UFormat %a%y%d
$names = $letter | ForEach-Object { $_ + $date } | ForEach-Object { for($i=1;$i -le 20;$i++) { $_ + $i } }
缩短得到相同的结果:
$letter = 97..122 | foreach {[char]$_}
$date = get-date -UFormat %a%y%d
$names = $letter | ForEach-Object { for($i=1;$i -le 20;$i++) { $_ + $date + $i } }