Как найти файл, который содержит символы и расширение в режиме рекурсии в Powershell? - PullRequest
1 голос
/ 12 марта 2020

Я пытаюсь найти весь файл, который содержит $ 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

( PS: под $ var я имею в виду, что это зависит от значения $ iniContent ["Search"] ["FileWith"])

Ответы [ 2 ]

2 голосов
/ 12 марта 2020

Вы можете найти все файлы по этой команде:

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

Возвращает все файлы в папке, которые содержат имя $var и заканчивается ".log"

0 голосов
/ 12 марта 2020

После многих попыток я сделал это, и это работает:

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
            }
        }  

Если есть лучший способ сделать это, не стесняйтесь публиковать его тоже;)

...