2016-08-09 65 views
0

Ich muss Eigenschaften aus der Konfigurationsdatei lesen. Ich kann es mitPowerShell Eigenschaftendatei lesen

ConvertFrom-StringData(Get-Content test.conf | out-String) 

Aber in dieser Datei Ich habe param

username=intranet\sysTestAcc 

Und wenn es versuchen, es zu analysieren, hatte ich Fehler: Unerkannte \ s Escape-Sequenz.

Wie kann ich das mit Skript beheben? Ich kann die Datei vor dem Ausführen des Skripts nicht ändern.

Antwort

4

Ersetzen Sie die \ mit \\:

# The first '\\' is a regex with a '\' escape to create a literal '\' 
# The second '\\' is a literal replacement (non-regex) that inserts two '\' 
ConvertFrom-StringData ((Get-Content test.conf -Raw) -replace '\\','\\') 
+0

Großartig. Es ist Arbeit für mich! – Lubchak

2

Sie müssen die \ mit einem anderen entkommen. d. h.

username=intranet\\sysTestAcc 

An diesem Punkt wird ConvertFrom-StringData glücklich sein.

Sie können auch den Parameter "-Raw" für Get-Content anstelle von Pipeline in Out-String verwenden.

+0

ich nicht kann, weil ich erste Version von Powershell haben. Und das Problem ist, dass ich nicht vor dem Ausführen von Skript ersetzen kann. – Lubchak