我正在尝试创建一个powershell脚本,该脚本将更改几台计算机上文本文件中的一些行。目前,密码是一组随机数字和字母,每个文本文件的数字和字母不同,但新密码将相同。
我使用的是Powershell v2和3。
综述:
1) 在"password"one_answers"serial_number"之间更改字符串
2) 例如,字符串"/*57575757hsdhdh"是一组随机数字和字母,每个文本文件都不同。对于所有文本文件,我希望更改为"/*123456"。
3) 此外,在文本末尾,我想将用户名从"ABC"更改为"DEF"
4) 这是文本文件:
{
"http_proxy_password" : "/*21126D837687BDE38B4A85A9D6977E0243246C194934A564DE653DAFF556D5A1",
"http_proxy_username" : "",
"password" : "/*57575775hsdhdh",
"serial_number" : "65456N",
"socks_password" : "/*5C1F18F57883BC94FE3B82DFD1957973A422E1BFD1BFB5F0938AC2B726A53858",
"socks_username" : "",
"username" : "ABC"
对我来说,这看起来像是一个json
文件,除了丢失的}
,您可能已经忘记了。
若要读取该文件,可以使用Get-Content cmdlet。使用ConvertFrom-Json cmdlet,可以将字符串转换为json
对象。然后,您可以访问和修改所需的属性,并最终使用ConvertToJson:将其转换回json
字符串
$contennt = Get-Content 'Your_file_path_here'
$object = $contennt | ConvertFrom-Json
$object.password = '/*123456'
$object.username = 'DEF'
$object | ConvertTo-Json
输出:
{
"http_proxy_password": "/*21126D837687BDE38B4A85A9D6977E0243246C194934A564DE653DAFF556D5A1",
"http_proxy_username": "",
"password": "/*123456",
"serial_number": "65456N",
"socks_password": "/*5C1F18F57883BC94FE3B82DFD1957973A422E1BFD1BFB5F0938AC2B726A53858",
"socks_username": "",
"username": "DEF"
}
注意:如果要将json
写回文件,可以使用Set-Content cmdlet。