2016-08-16 11 views
-1

PowerShellの標準に従って、.txtファイルから値を取得するのにはいくつかの困難があります。PowershellのXMLノードを持つテキストファイルから値を取得する

私の.txtファイルは、この構造を有する:

<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> 

私は<arquivo>と、例えば</arquivo>の間の値を取得したいと思います"teste.exe"であり、値は<caminhoArquivo></caminhoArquivo>の間です。 "C:/ teste"には、テキストファイルの各行に対してforeachが含まれていますが、これを行うことはできません。私はすでに正規表現で試してみましたが、成功しませんでした。この問題でPowerShellの初心者を助けることができましたか?

ありがとうございます! :D

+0

機能restaurarLixeira = {$例えば " dasdasdasd " $パターン=「(?<=.*)\ W +?(?= 。*)」 $結果= [正規表現] ::マッチ($たとえば、$パターン) $ result.Value 書き込みホストの$ result.Value.ToString() } –

答えて

0

ラインはあなたがrootノード内にそれらをラップし、次のようにそれを試みることができるXMLノードであると思われ、その後、ハッシュテーブル

のリストを返すXML

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

に変換すると

Name : caminhoArquivo 
Value : C:/teste 

Name : arquivo 
Value : teste.exe 

Name : caminhoArquivo 
Value : C:/sistema/res 

Name : arquivo 
Value : carro.zip 

... 
+0

@ CarlosHenriqueそれはあなたのために働いたのですか? – DAXaholic

関連する問題