我有一个脚本搜索字符串(在这种情况下“结束程序”)。然后它遍历文件夹中的每个文件并输出任何不包含该字符串的文件。使用txt文件作为列表PowerShell阵列/变量
当这个短语被硬编码时,它可以很好地工作,但是我想通过创建一个文本文件来保存字符串来使它更加动态。将来,我希望能够添加到文本文件中的字符串列表中。我无法在任何地方在网上找到此,所以任何帮助表示赞赏。
当前代码:
$Folder = "\\test path"
$Files = Get-ChildItem $Folder -Filter "*.log" |
? {$_.LastWriteTime -gt (Get-Date).AddDays(-31)}
# String to search for within the file
$SearchTerm = "*End program*"
foreach ($File in $Files) {
$Text = Get-Content "$Folder\$File" | select -Last 1
if ($Text | WHERE {$Text -inotlike $SearchTerm}) {
$Arr += $File
}
}
if ($Arr.Count -eq 0) {
break
}
这是仅显示有问题的区域中的代码的简化版本。我想把“结束程序”和另一个字符串“结束”放在一个文本文件中。
以下是该文件的内容是什么样子:
*End program*,*Start*
因此,基本上你想要使用一些搜索条件的文件,并且你想枚举所有不包含这些条款的文件? –
我想你可以使用'Get-Content'从文本文件中获取值。您只需要知道文本文件的名称或名称的模式,并使用'Get-ChildItem'来扫描文本文件的目录。 –
@AnsgarWiechers是的,这就是我需要做的。 – agfila