如何在Powershell中以递归模式找到包含字符和扩展名的文件



我试图找到所有包含$var并以".log"结尾的文件,我需要它是递归

我试过这个

$logDirectoryPath = $Directory + "*"       
Get-ChildItem -Path $logDirectoryPath -Include *$iniContent["Search"]["FileWith"]*, *.log -Recurse -File -Name | ForEach-Object {
$lbox_files.Items.Add($_)  # we add file to a list
}  

但是这个命令返回每个单独的文件,而不管$var和Recurse似乎被禁用:/

文件如下所示:foo_test.log

另一个文件:\user\foo_1.log

(附言:$var我的意思是它取决于$iniContent["Search"]["FileWith"]值(

您可以通过以下命令找到所有文件:

Get-ChildItem -Path "c:" -Recurse -File -Filter "*$var*.log"

它返回文件夹中包含名称为$var的所有文件,并以".log"结尾

经过多次尝试,我做到了,并且成功了:

Get-ChildItem -Path $Directory  -Filter *.log -Recurse -File -Name | ForEach-Object {
$fileWith = $iniContent["Search"]["FileWith"]
if ($_ -like '*{0}*' -f $fileWith) {
$lbox_files.Items.Add($_)  # we add the file name to a list
}
}  

如果有更好的方法,也可以随意发布;(

最新更新