2016-08-16 2 views
-1

Ich habe Probleme, Werte aus einer TXT-Datei zu übernehmen, die einem Standard in Powershell folgt.Werte aus einer Textdatei mit XML-Knoten in Powershell abrufen

Meine .txt-Datei hat folgende Struktur:

<arquivo>teste.exe</arquivo> <caminhoArquivo>C:/teste</caminhoArquivo> 
<arquivo>carro.zip</arquivo> <caminhoArquivo>C:/sistema/res</caminhoArquivo> 
<arquivo>logs.txt</arquivo> <caminhoArquivo>C:/log</caminhoArquivo> 
<arquivo>servicos.txt</arquivo> <caminhoArquivo>C:/sistema/res</caminhoArquivo> 
<arquivo>modelos.jpg</arquivo> <caminhoArquivo>C:/sistema/modelos</caminhoArquivo> 
<arquivo>binarios.zip</arquivo> <caminhoArquivo>C:/nova pasta</caminhoArquivo> 
<arquivo>config.lua</arquivo> <caminhoArquivo>C:/server</caminhoArquivo> 

Ich möchte den Wert zwischen <arquivo> erhalten und </arquivo> z.B. "teste.exe", und der Wert zwischen <caminhoArquivo> und </caminhoArquivo> z.B. "C:/teste" mit einer foreach für jede Zeile der Textdatei, aber ich kann dies nicht tun. Ich habe es bereits mit einer Regex versucht, aber ich hatte keinen Erfolg. Könnte ein Neuling in Powershell mit diesem Problem helfen?

Danke! : D

+0

Funktion restaurarLixeira { $ Beispiel = " dasdasdasd " $ pattern = „(? <=.*) \ w +? (? = . *)“ $ result = [Regex] :: Match ($ Beispiel $ pattern) $ result.Value Write-Host $ result.Value.ToString() } –

Antwort

0

Wie es scheint, dass die Linien von XML-Knoten sind Sie es wie die folgende versuchen könnten, die sie in einem root Knoten wickelt und wandelt sie dann in XML

Get-Content $pathToYourFile | 
    % { 
    $root = [xml]("<root>$_</root>") 
    @{ 
     arquivo = $root.root.arquivo 
     caminhoArquivo = $root.root.caminhoArquivo 
    } 
    } 

, das eine Liste von Hash-Tabellen

zurück
Name : caminhoArquivo 
Value : C:/teste 

Name : arquivo 
Value : teste.exe 

Name : caminhoArquivo 
Value : C:/sistema/res 

Name : arquivo 
Value : carro.zip 

... 
+0

@ Carlos Henrique Hat das für dich funktioniert? – DAXaholic

Verwandte Themen