Как я могу искать имена файлов в каталоге с помощью powershell?

Мне нужно найти файл с именем «2018_reports.txt» в каталоге «\\Save\» и его подкаталогах «\\Save\2017\, \\Save\2018\».

Каков наилучший способ добиться этого? Я смог проверить, существует ли файл, если я указал полный путь, однако мне нужно, чтобы он также искал подкаталоги и возвращал полный путь.

Моя цель - найти имя файла в каталоге \Save и его подкаталогах, а затем вернуть сообщение с сообщением «Найдено с FullPATH» или «НЕ НАЙДЕНО».

Вот что у меня есть до сих пор

Get-ChildItem -Path \\save -Filter 2018_reports.txt -Recurse -ErrorAction SilentlyContinue -Force 

Я не могу вернуть сообщение о том, что файл найден. Он также не возвращает полный путь.


person Bakari Lewis    schedule 26.06.2019    source источник
comment
Простой способ - сохранить вашу команду в переменной. Затем используйте оператор if, чтобы узнать, есть ли какие-либо значения: if ($results) { "Found with $($results.Fullname)" }; else { "NOT FOUND" }   -  person AdminOfThings    schedule 27.06.2019


Ответы (1)


Вы захотите выбрать совпадающие имена объектов с помощью wgere и вернуть полный путь.

Вам также необходимо указать полный путь к «\Save\» (если \save не является общим путем, возможно, так как он начинается с \ ..? )

Eg:

.

        $(Get-ChildItem -Path 'c:\save' -Recurse | ? {$_.name -match "2018_reports.txt" } ).FullName
person Ben Personick    schedule 27.06.2019