我有100个.sql文件,我想检查字符串"Das ist ein Test"
是否包含在此文件中。
到目前为止,我只找到了Select-String
cmdlet。但是,这只给了我找到String的文件。
这是我的PowerhShell脚本:
$path = "F:\Masterarbeit\Daten\"
$search = "Das ist ein Test"
Get-ChildItem $path -Filter *.sql -Recurse | Select-String -Pattern $search -casesensitive | select FileName
exit
这是我得到的输出:
我现在如何更改我的代码,以便我只获取不包含字符串的文件名?我也知道有一个名为-NotMatch
的参数,但不幸的是它只返回找不到该字符串的所有行。
答案 0 :(得分:0)
现在您正在检查每个文件的每一行。你想要的是检查每个文件(如果它包含字符串)。
System.ComponentModel.Win32Exception: Access is denied
答案 1 :(得分:0)
我会把你所拥有的东西包裹起来,并Select-String
阻止Where-object
块与-not
运算符。
Get-ChildItem $path -Filter *.sql -Recurse |
#Only keep files that don't return a match
Where-Object { -not (Select-String -Path $_.FullName -Pattern $search -casesensitive) } |
Select-Object Name