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

如何实现读取手机号文件、展示可选列表并将选中值赋值给$number?

PowerShell手机号选择脚本解决方案

我来帮你搞定这个需求!你已经完成了读取手机号文件的第一步,接下来咱们把列表展示得更友好,加上用户选择的功能,最后把选中的号码传给后续命令。

1. 先优化手机号读取(过滤无效内容)

首先,咱们可以给读取步骤加个过滤,确保只有有效的手机号(比如国内11位数字),避免空行或者无效内容干扰后续操作:

# 读取手机号文件,过滤空行和非11位数字的无效号码
$numbers = Get-Content 'C:\temp\file.txt' | Where-Object { $_ -match '^\d{11}$' }

# 检查是否有有效号码,没有的话直接提示退出
if ($numbers.Count -eq 0) {
    Write-Host "⚠️ 没有找到有效的手机号,请检查文件内容!" -ForegroundColor Red
    exit
}

2. 美观展示手机号列表

给每个号码加上序号,用户看起来更清晰,也方便选择:

Write-Host "`n📋 可用手机号列表:" -ForegroundColor Cyan
for ($i = 0; $i -lt $numbers.Count; $i++) {
    # 序号从1开始,符合用户的使用习惯
    Write-Host "$($i+1). $($numbers[$i])"
}

3. 实现用户选择与输入验证

为了避免用户输入错误,咱们做个循环验证,确保输入的是合法范围内的数字:

do {
    $userInput = Read-Host "`n请输入你要选择的号码序号(1-$($numbers.Count))"
    # 验证输入是否为有效数字,且在1到号码总数之间
    $isValid = [int]::TryParse($userInput, [ref]$selectedIndex) -and $selectedIndex -ge 1 -and $selectedIndex -le $numbers.Count
    if (-not $isValid) {
        Write-Host "❌ 输入无效,请输入1到$($numbers.Count)之间的数字!" -ForegroundColor Red
    }
} while (-not $isValid)

# 把选中的号码赋值给变量(注意数组索引从0开始,所以要减1)
$selectedNumber = $numbers[$selectedIndex - 1]
Write-Host "`n✅ 你选中的号码是:$selectedNumber" -ForegroundColor Green

4. 完整脚本示例(直接可用)

把上面的步骤整合起来,再加上后续的命令调用(替换成你实际要用的命令就行):

# 1. 读取并过滤手机号列表
$numbers = Get-Content 'C:\temp\file.txt' | Where-Object { $_ -match '^\d{11}$' }

if ($numbers.Count -eq 0) {
    Write-Host "⚠️ 没有找到有效的手机号,请检查文件内容!" -ForegroundColor Red
    exit
}

# 2. 美观展示手机号列表
Write-Host "`n📋 可用手机号列表:" -ForegroundColor Cyan
for ($i = 0; $i -lt $numbers.Count; $i++) {
    Write-Host "$($i+1). $($numbers[$i])"
}

# 3. 获取并验证用户选择
do {
    $userInput = Read-Host "`n请输入你要选择的号码序号(1-$($numbers.Count))"
    $isValid = [int]::TryParse($userInput, [ref]$selectedIndex) -and $selectedIndex -ge 1 -and $selectedIndex -le $numbers.Count
    if (-not $isValid) {
        Write-Host "❌ 输入无效,请输入1到$($numbers.Count)之间的数字!" -ForegroundColor Red
    }
} while (-not $isValid)

$selectedNumber = $numbers[$selectedIndex - 1]
Write-Host "`n✅ 你选中的号码是:$selectedNumber" -ForegroundColor Green

# 4. 将选中的号码传入后续命令(替换成你的实际命令)
Write-Host "`n正在执行添加用户操作..." -ForegroundColor Yellow
# 这里替换成你实际要运行的添加用户命令,比如:
# New-User -PhoneNumber $selectedNumber
Write-Host "添加用户完成,使用号码:$selectedNumber" -ForegroundColor Green

小提示

  • 如果你的手机号不是11位,只需要修改过滤的正则表达式就行,比如国外的号码可以调整为^\+?\d{10,15}$
  • 脚本里用了颜色提示,让用户更直观地看到状态,你可以根据喜好调整颜色或者去掉颜色

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:18:31