Рекурсивный поиск файлов с помощью PowerShell
Я ищу файл во всех папках.
Copyforbuild.bat
доступно во многих местах, и я хотел бы искать рекурсивно.
$File = "V:Myfolder***.CopyForbuild.bat"
Как я могу это сделать в PowerShell?
6 ответов:
использовать Get-ChildItem С
-Recurse
переключатель:Get-ChildItem -Path V:\Myfolder -Filter CopyForbuild.bat -Recurse -ErrorAction SilentlyContinue -Force
при поиске папок, где вы можете получить ошибку на основе безопасности (например,
C:\Users
), используйте следующую команду:Get-ChildItem -Path V:\Myfolder -Filter CopyForbuild.bat -Recurse -ErrorAction SilentlyContinue -Force
Я использую это для поиска файлов, а затем PowerShell отображает весь путь к результатам:
dir -Path C:\FolderName -Filter FileName.fileExtension -Recurse | %{$_.FullName}
вы всегда можете использовать подстановочные
*
наFolderName
и/илиFileName.fileExtension
. Например:dir -Path C:\Folder* -Filter File*.file* -Recurse | %{$_.FullName}
приведенный выше пример будет искать любую папку в
C:\
привод, начинающийся со словаFolder
. Так что если у вас есть папка с именемFolderFoo
иFolderBar
PowerShell покажет результаты из обеих этих папок.то же самое касается файла имя и расширение файла. Если вы хотите искать файл с определенным расширением, но не знаете имя файла, вы можете использовать:
dir -Path C:\FolderName -Filter *.fileExtension -Recurse | %{$_.FullName}
или наоборот:
dir -Path C:\FolderName -Filter FileName.* -Recurse | %{$_.FullName}