2017-03-17 14 views
1

my host.txtファイルの1つに以下のようなデータが表示されます。トリミング後に最後の単語が存在するようにします。powershellを使用してtxtファイルから最初の数語を削除する方法

どうすればいいですか?誰でも助けてくれますか?

| caa3ab95-ecad-46fe-9905-ceac58853ffc |テスト1-my_instance-25ghikbbpip6 |

私はmethordの下にしようとしたが、すべての

$hosts = Get-Content C:\host.txt 

foreach ($line in $hosts) 
    { 
    $split1 = $line.trim("|") 
    $split2 = $split1.Split(",")[1] 
    echo $split2 >> C:\instance.txt 
    } 
+0

|'?なぜ文字列にカンマが含まれていないときに '、'に分割しようとしていますか? – 4c74356b41

+0

foreachループで$ line.Split( '|')[2]を使用してください。 –

答えて

1

で次のように動作しませんでした "テスト-1-my_instance-25ghikbbpip6"

から名前だけをしたい:

$hosts = Get-Content "C:\host.txt" 

foreach ($line in $hosts) 
    { 
     $split1 = $line.trim("|") 
     $split2 = $split1.Split("|")[1] 
     Write-Output $split2 >> "C:\instance.txt" 
    } 

出力は次のとおりです。

Test-1-my_instance-25ghikbbpip6

例:あなたは `に分割しない理由

PS C:\Windows\system32> 
$hosts = Get-Content "C:\Users\me\Desktop\test.txt" 

foreach ($line in $hosts) 
    { 
     $split1 = $line.trim("|") 
     $split2 = $split1.Split("|")[1] 
     Write-Output $split2 >> C:\instance.txt 
    } 

PS C:\Windows\system32> Get-Content C:\instance.txt 
Test-1-my_instance-25ghikbbpip6 
+0

トリムはなぜですか?変数に保存し、出力を書き出すのはなぜですか?ファイルに直接書き込む – 4c74356b41

+1

OPのコーディングスタイルと一致するように、彼はどこが間違っていたか理解できる。ユーザーが学ぶための代替的かつより簡潔な解決策を投稿してください。 –

+0

もう一度同じことをやって学ぶことはありません – 4c74356b41

関連する問題