2012-02-02 69 views
2

我承認我今天很累,但即使這樣,我也無法藉助Powershell爲自己創建噩夢。Powershell選擇字符串,然後獲取有關返回的文件的數據

基本上,目標是搜索一個目錄,查找包含在某些單詞文檔中的字符串。然後我需要返回文件名,創建日期和最後寫入時間。我很容易想到,但在某個階段,我走得很順利,而且還在攀登。

我到目前爲止所做的是運行搜索並將路徑變量導出到文本文件,爲我提供包含該字符串的文件的路徑。然後,我嘗試使用foreach循環來加載文件的內容,並針對每個輸入到Select-Object Name,CreationTime,LastWriteTime的條目運行Get-ChildItem。我終於>這到一個文本文件。然而,它現在似乎在迴應目錄中每個文件的信息,而不僅僅是那些包含我正在搜索的字符串的信息。當我傾向於接受這些事情時,我感到我已經過度複雜化了。任何幫助不勝感激。

Get-ChildItem -Recurse -Include *.doc | Select-String "Shiba" | select-object path > C:\TRCALM\shibapath.txt 


$files = get-content C:\TRCALM\shibapath.txt 


foreach($i in $files){gci $i | select-object Name,CreationTime,LastWriteTime > C:\TRCALM\SHIBADates.txt} 

回答

4

你幾乎有:

$files = (Get-ChildItem -Recurse -Include *.doc | Select-String "Shiba"| select-object path) 
$k = foreach($i in $files){ (gci $i.Path | select-object Name,CreationTime,LastWriteTime) } 
$k > C:\pst\SHIBADates.txt 
+0

我是在想,那是因爲我沒有在我的命令,它是從目錄中帶回的所有文件中使用$ i.Path正確嗎? – 2012-02-06 13:22:24

+0

如果把它放在同一行上,那麼在文件中格式化也不是很好,至少對我來說 – 2012-02-07 09:01:22

相關問題