Powershell:当字符串有一组随机数字时,我如何编辑字符串之间的字符串



我正在尝试创建一个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。

最新更新