Was ist ein Äquivalent von * Nix 'cut' Befehl in Powershell?

8

Ich habe folgenden Inhalt in einer Konfigurationsdatei (sample.cfg),

%Vor%

Ich versuche, jeden Wert nach dem : zu speichern, indem ich split in PowerShell verwende. aber ich kann keine Ausgabe erzeugen.

Kann mir jemand sagen, wie man PowerShell split für das obige Problem verwendet?

    
HamTheAstroChimp 08.07.2014, 14:09
quelle

3 Antworten

6

Sie können den Inhalt der Datei mit Get-Content lesen, dann jede Zeile durch ForEach-Object leiten, dann den Split-Befehl in jeder Zeile verwenden und das zweite Element im Array wie folgt verwenden:

%Vor%

Ausgabe

%Vor%

Aktualisieren

Ich bevorzuge den Ansatz von @AnsgarWiechers, aber wenn Sie wirklich spezifisch benannte Werte benötigen, können Sie eine Hashtabelle erstellen und den Namen durch den Wert ersetzen:

%Vor%

Ausgabe

%Vor%     
David Martin 08.07.2014, 14:29
quelle
4

Ich nehme an, Sie wollen nicht nur die Zeilen teilen, sondern Schlüssel-Wert-Paare erstellen. Das könnte so erreicht werden:

%Vor%

Sie können auch das ConvertFrom-StringData Cmdlet:

verwenden %Vor%

Die Operation -replace ist notwendig, weil ConvertFrom-StringData erwartet, dass Schlüssel und Wert durch = getrennt werden. Wenn Sie das Trennzeichen in der Konfigurationsdatei von : nach = ändern könnten, könnten Sie ConvertFrom-StringData $_ ohne Ersetzung verwenden.

    
Ansgar Wiechers 08.07.2014 14:34
quelle
1

Wie ist das?

%Vor%     
js2010 31.07.2017 04:29
quelle