2012-11-02 70 views
3

我的目的是在文本文件(C:\ Users \ pmaddox \ Desktop \ VaughnResers eligibility text.txt)中查找並找到具體日期並將包含所述日期的整行輸入到第二個文件(VaughnReserBatTest.txt) 。我希望通過使用Add-Content的格式(位置「輸入」)和Select-String的管道選擇對象行來將文本行中的原始字符串帶入Add-Content cmdlet,但到目前爲止,我現在已經運氣了。 ..帶有選擇字符串作爲添加內容的添加內容?

我現在的劇本是這樣的:

Add-Content \\Waqmed1\pmaddox$\VaughnReserBatTest.txt Select-String C:\Users\pmaddox\Desktop\VaughnResers eligibility text.txt -pattern "10/11/1988" | Select-Object Line 

我是相當新的PowerShell的,我相信我的答案是介於無論是在「創建和對象」方向或「修復你那該死的編碼」方向。任何幫助,將不勝感激!

回答

1

假設包含所需的線被命名爲a.txt中的文件,並要寫入所需行的文件,以被命名爲b.txt:

Get-Content .\a.txt | Select-String "10/11/1988" | Add-Content .\b.txt 

注意,所有匹配的行frorm A.TXT將被寫入b.txt,所以如果有多個匹配,那麼你將寫入多個條目到b.txt。如果你只是想第一場比賽,你可以使用以下命令:

Get-Content .\a.txt | Select-String "10/11/1988" | Select-Object -First 1 | Add-Content .\b.txt 
+0

謝謝!非常簡潔但內容豐富!我認爲我從C編程的角度思考了管道而不是腳本的感覺,然而現在看起來這很有道理。再次感謝你們兩位! – user1794679

2

嘗試

get-contentc "C:\Users\pmaddox\Desktop\VaughnResers eligibility text.txt" | 
select-string -Pattern '10/11/1988') | select -expa line | 
add-content \\Waqmed1\pmaddox$\VaughnReserBatTest.txt 
+0

我不認爲需要「行」的屬性擴展,因爲Add-Content在其Value參數中接受Object []。 – dugas

+0

@dugas在沒有'-expand'的測試中,我添加了@ @ {Line = test date 01/11/2012}。也許只是在我的測試.. :) –

+0

是的,你是正確的。如果你管道選擇對象和選擇線,它需要擴大。 – dugas