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

sgh*_*980 1 powershell foreach loops

我需要生成以字母表开头的用户名,后跟日期,以1到20的数字结尾.共有520个名字.这是我提出的变量:

$letter = 97..122 | foreach {[char]$_}  
$date = get-date -UFormat %a%y%d  
$name = $letter | ForEach-Object { $_ + $date }
Run Code Online (Sandbox Code Playgroud)

因此,我设法将我的信件和日期放在一起,形成像aWed1513这样的名字,这正是我所需要的,但是当它以每个数字结束时,我被卡住了.通过向$ name添加递增$ i来尝试使用For循环,但不起作用..

Sam*_*out 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
Run Code Online (Sandbox Code Playgroud)

  • 你应该从循环中取出`$ letter`声明.您无需继续重新初始化它.与日期相同...因此在处理期间不会更改. (2认同)
  • 使用格式运算符(`-f`)可能会多一点PoSh:`'{0} {1} {2}'-f $ _,$ date,$ i`.另外,我建议在`for`循环之外移动字符列表和日期的计算,因为它们不应该在循环内改变. (2认同)
  • 谢谢大家的快速反馈,这里新的,但总是喜欢这个网站.希望在我成立之后我也能够提供帮助.:) (2认同)