2017-03-17 108 views
1

我的一個host.txt文件顯示如下的數據,我希望最後一個字在修剪後存在。如何使用powershell從txt文件中刪除前幾個字

我該怎麼做?任何人都可以幫忙嗎?

| caa3ab95-ecad-46fe-9905-ceac58853ffc | Test-1-my_instance-25ghikbbpip6 |

我想只從名稱爲 「測試-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

沒有工作下列內容:

$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

相關問題