如何在用户名末尾添加数字

时间:2015-05-13 21:46:50

标签: loops powershell foreach

我需要生成以字母表开头的用户名,后跟日期,以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循环,但是没有工作..

2 个答案:

答案 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 } }