如何将password.txt单行内容导入config.json或在JSON内生成WiFi密码?
解决方法
一、将config.json中的静态PSK替换为password.txt内容
有两种可行方式,按需选择:
1. 批量修改config.json文件
用PowerShell脚本一次性替换所有PSK值,可单独执行或整合到你的change-password.ps1开头:
# 读取password.txt的单行密码(去除多余换行) $newWiFiPassword = Get-Content -Path "password.txt" -Raw | TrimEnd("`r`n", "`n") # 加载config.json并转为可操作对象 $configData = Get-Content -Path "config.json" -Raw | ConvertFrom-Json # 遍历所有PSK键,替换为新密码 foreach ($monthKey in $configData.PSKs.PSObject.Properties.Name) { $configData.PSKs.$monthKey = $newWiFiPassword } # 将修改后的数据写回config.json $configData | ConvertTo-Json -Depth 3 | Set-Content -Path "config.json"
执行后,config.json中所有月份对应的PSK值都会变成password.txt里的内容。
2. 直接在change-password.ps1中读取password.txt
如果不想修改config.json,可跳过读取config的PSK步骤,直接从文件取密码:
# 替换原脚本中读取config.PSKs的代码 $targetPassword = Get-Content -Path "password.txt" -Raw | TrimEnd # 之后用$targetPassword作为WiFi密码传入路由器修改逻辑即可
这种方式更轻量,无需改动静态配置文件。
二、能否直接在config.json内生成随机字符串?
不行。JSON是静态数据格式,不支持执行代码或动态生成内容,所有值必须是预先定义的静态字符串/数值。随机字符串只能通过外部脚本(如PowerShell)生成后,写入JSON文件或直接传入修改密码的逻辑。
内容的提问来源于stack exchange,提问作者Beckyboo
相关产品推荐
相关产品推荐

