2017-08-09 41 views
2

對不起,我的問題和我想要做的事情。將文件中的關鍵字(模式)與多個文件進行匹配

我的文件:

\\mydir\keywords.txt 
\\mydir\textfile1.txt 
\\mydir\textfile2.txt 
\\mydir\textfile3.txt 
etc 

我有「keywords.txt」有很多的關鍵字(字符串),我想匹配反對「textfile1.txt」等,並接受其中的一個答案包含匹配的文件名。

$keywords = Get-Content -Path '\\mydir\keywords.txt' | Out-String 
Select-String -Path '\\mydir\*.txt' -Pattern $keywords 

I.e.通過\ mydir \中所有.txt文件遞歸搜索,並使用文件「keywords.txt」的內容作爲關鍵字進行搜索。

Get-Content默認情況下將數值作爲數組返回,Out-String應將這些值轉換爲字符串。

希望所有幫助!

+0

你想他們作爲一個數組,我想,因爲'-Pattern'接受數組輸入。放下'Out-String'部分。 –

回答

3

從您的代碼中刪除| Out-String部分,它將按照您的打算相信。這是因爲Get-Content將在$Keywords創建一個字符串數組和-Pattern參數接受字符串數組輸入:

您還應該使用-SimpleMatch,除非你想讓你的關鍵詞被解釋爲正則表達式模式。

Select-String -Path '\\mydir\*.txt' -Pattern (Get-Content -Path '\\mydir\keywords.txt') -SimpleMatch 
+1

感謝您的幫助,您的答案和@MarkWragg給了我我想要的,我實際上忽略了,因爲這兩個答案也轉儲整個數組,因爲它使用「keywords.txt」找到匹配,並且還搜索所有txt文件*。文本)。 我刪除了keywords.txt並把它另一個文件夾,它的工作:d 所以我實際的代碼爲: '$內容=獲取內容「\\ mydir1 \ keywords.txt」 選擇字符串-Path「 \\ mydir2 \ *。txt'-pattern $ content' – TheSwede86

相關問題