You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell中数组与字符串拼接无法逐元素生成目标格式邮箱地址

错误原因

你的代码存在两处核心问题:

  • -split $array 逻辑错误:若$array本身已经是数组类型,该操作会先将整个数组转为空格分隔的单字符串再执行拆分,极易出现元素合并异常;若$array是待拆分的原始字符串,拆分后的结果也没有正确传入遍历逻辑。
  • 遍历逻辑写法错误:ForEach-Object未接收到有效的管道输入,且循环体内直接引用整个$split数组而非单个遍历元素,PowerShell会自动将整个数组按空格拼接后和前后缀字符串组合,最终输出所有元素挤在同一行的结果。
修正方案

如果你的$array本身就是存储了目标值(2、3、4……100)的数组对象,直接遍历每个元素拼接即可,注意ForEach-Object循环中用$_指代当前遍历到的单个元素:

# 替换为你自己的原始数组赋值即可
$array = 2..100
$mailPrefix = 'test_'
$domain = '@test.com'

$array | ForEach-Object {
    $mailPrefix + $_ + $domain
}

如果你最初的输入不是数组,是一段空格分隔的原始字符串(例如内容为"2 3 4 ... 100"),先按空白字符正确拆分后再遍历,也可以用foreach语法实现,可读性更高:

# $rawContent 替换为你的原始字符串变量
$splitResult = $rawContent -split '\s+'
$mailPrefix = 'test_'
$domain = '@test.com'

foreach ($item in $splitResult) {
    "${mailPrefix}${item}${domain}"
}

执行后即可得到预期的逐行输出:

test_2@test.com
test_3@test.com
test_4@test.com
...
test_100@test.com

内容的提问来源于stack exchange,提问作者frosty_ad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 23:18:20