【问题标题】:Powershell: How do I edit a string between strings while that string has a random set of numbersPowershell:如何在字符串之间编辑字符串,而该字符串具有一组随机数字
【发布时间】:2016-07-27 15:23:46
【问题描述】:

我正在尝试创建一个 powershell 脚本,该脚本将更改多台计算机上文本文件中的某些行。目前,密码是一组随机数字和字母,每个文本文件都不同,但新密码是一样的。

我正在使用 Powershell v2 和 3。

回顾:

1) 更改“password”和“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"

【问题讨论】:

    标签: string powershell replace


    【解决方案1】:

    嗯,这对我来说就像一个json 文件,除了你可能忘记的丢失的}

    要读取文件,您可以使用Get-Content cmdlet。使用ConvertFrom-Json cmdlet,您可以将字符串转换为json 对象。然后您可以访问和修改所需的属性,最后使用ConvertTo-Json 将其转换回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。

    【讨论】:

      猜你喜欢
      • 2014-02-09
      • 2015-04-04
      • 2021-08-03
      • 1970-01-01
      • 2021-03-13
      • 2019-04-01
      • 2012-06-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多