2016-04-07 11 views
0

Ich versuche, ein Powershell-Skript zu erstellen, das einige Zeilen in einer Textdatei auf mehreren Computern ändern wird. Momentan ist das Passwort eine Gruppe von Zufallszahlen und Buchstaben, die für jede Textdatei unterschiedlich sind, aber das neue Passwort ist dasselbe.Powershell: Wie bearbeite ich eine Zeichenfolge zwischen Zeichenfolgen, während diese Zeichenfolge eine zufällige Anzahl von Zahlen hat

I Powershell v2 bin mit und 3.

Recap:

1) Ändern Sie die Zeichenfolge zwischen "Passwort" und "serial_number"

2) die Zeichenfolge "/ * 57575757hsdhdh" zum Beispiel ist ein Bündel von Zufallszahlen und Buchstaben, die für jede Textdatei unterschiedlich sind. Das möchte ich für alle Textdateien auf "/ * 123456" ändern.

3) Auch am Ende des Textes möchte ich den Benutzernamen von "ABC" TO "DEF"

4) ändern Hier wird die Textdatei:

{ 
    "http_proxy_password" : "/*21126D837687BDE38B4A85A9D6977E0243246C194934A564DE653DAFF556D5A1", 
    "http_proxy_username" : "", 
    "password" : "/*57575775hsdhdh", 
    "serial_number" : "65456N", 
    "socks_password" : "/*5C1F18F57883BC94FE3B82DFD1957973A422E1BFD1BFB5F0938AC2B726A53858", 
    "socks_username" : "", 
    "username" : "ABC" 

Antwort

0

Nun, diese sieht für mich wie eine json Datei aus, mit Ausnahme der fehlenden }, die Sie wahrscheinlich vergessen haben. Um die Datei zu lesen, können Sie das Cmdlet Get-Content verwenden. Mit dem Cmdlet ConvertFrom-Json können Sie die Zeichenfolge in ein json-Objekt konvertieren. Dann können Sie die gewünschten Eigenschaften zugreifen und diese ändern und es schließlich zu einer json Zeichenfolge konvertieren zurück ConvertTo-Json mit:

$contennt = Get-Content 'Your_file_path_here' 

$object = $contennt | ConvertFrom-Json 
$object.password = '/*123456' 
$object.username = 'DEF' 
$object | ConvertTo-Json 

Ausgang:

{ 
    "http_proxy_password": "/*21126D837687BDE38B4A85A9D6977E0243246C194934A564DE653DAFF556D5A1", 
    "http_proxy_username": "", 
    "password": "/*123456", 
    "serial_number": "65456N", 
    "socks_password": "/*5C1F18F57883BC94FE3B82DFD1957973A422E1BFD1BFB5F0938AC2B726A53858", 
    "socks_username": "", 
    "username": "DEF" 
} 

Hinweis: Wenn Sie die json schreiben Zurück zur Datei können Sie das Cmdlet Set-Content verwenden.

Verwandte Themen