Поиск файлов в windows 10 powershell

Для поиска файлов через Powershell есть два командлета. Первый Get-ChildItem, наподобие dir или ls. Второй Select-String, аналогичен grep.

Для поиска файлов через Powershell есть командлет ChildItem. С помощью него мы можем фильтровать данные. Например так мы выведем все файлы и папки, которые лежат на диске C.

Get-ChildItem -Path "C:" -Recurse

Где:

  • Path — где искать. Если его не указать, то powershell будет искать там файлы, откуда он и запущен. Через запятую можно указать несколько директорий.
  • Recurse — рекурсивный поиск. Когда этот ключ не установлен, показываются файлы только текущей папки. Когда этот установлен, показываются, в том числе, папки и файлы внутри других папок.

Поиск файлов Powershell

Если у нас ожидаются папки, к которым у нас нет доступа, то мы можем добавить ключ -ErrorAction, что бы процесс поиска не останавливался с ошибкой:

Get-ChildItem -Path "C:Windows" -Recurse -ErrorAction SilentlyContinue

Для поиска нужных элементов у нас есть два ключа: для включения параметра и исключения. Например я знаю точно, что у программы «Калькулятор» файл имеет в названии calc, а расширение exe. При этом не уверен находится ли он в папке Windows или Program Files и включу оба пути. Так же я хочу исключить файлы с расширением msi и словом win:

Get-ChildItem -Path C:Windows,C:Program Files -Include "*calc*.exe" -Exclude "*.msi","win*" -Recurse -Force -ErrorAction SilentlyContinue

Где:

  • Include нужен для поиска вхождения. Знак * говорит, что я не знаю с чего начинается имя файла, но в нем есть calc, я не знаю что идет после, но заканчивается на .exe . Например под эти результаты подходят 1111calc1111.exe или AbcAlc2.exe.
  • Exclude говорит, что мне не нужно, т.е. исключит из выдачи. Это файлы заканчивающиеся на .msi и начинающиеся на win.
  • Force этот ключ позволяет искать в скрытых файлах и папках

Если мы используем Include и не используем Recurse, то знак * обязателен в Path иначе результат будет пустой.

Теперь попробуем найти файлы, которые были созданы за последнюю неделю. Для этого, сначала, объявим переменную с датой:

$date = Get-Date -Year 2019 -Month 6 -Day 22 -Hour 1 -Minute 00

Не обязательно все заполнять, но в таком случае значения будут приняты по умолчанию (от текущего дня).

powershell Get-Date

Затем передадим эти значения в наш поиск:

Get-ChildItem -Path "C:" -Include "*.txt" -Exclude "*.rar" -Recurse | Where-Object {$_.LastWriteTime -ge $date}

Где:

  • | это конвейер или Pipline, он говорит о том, что к каждому объекту слева нужно применить действия справа
  • Where-Object {$_.LastWriteTime — говорит о том, что нужно применять только к тем объектам, где есть значение LastWriteTime (последнее время изменения).
  • -ge $date — значит, что объект должен быть больше или равен (Greater than or equal) нашей переменной с датой. Если бы мы хотели узнать до определенной даты, мы должны были бы указать -le $date, -eq если бы дата была бы ровна. Называется «Операторы сравнения»

Поиск по содержимому файлов через Powershell

Мы можем искать внутри файлов, т.е. вхождение строк:

Get-ChildItem -Path C:Folder1 -Include "*.txt" -Recurse | Select-String -SimpleMatch "fixmypc"

Где:

  • SimpleMatch — строка, которую мы хотим найти внутри файла

В случае выше, для всего что слева от pipeline | , будет идти поиск внутри файлов на упоминание строки fixmypc.

Командлет Select-String может использоваться для поиска файлов:

Select-String -Path C:Folder1* -SimpleMatch "fixmypc" -Include "*.txt" -Exclude "*.rar"

Разница в том, что он будет искать только в текущей папке, а не во вложенных. Он так же будет искать вхождение в каждом файле, что при большом объеме существенно увеличит время работы. Т.е. эта команда предназначена уже для отфильтрованных значений, например после Get-ChildItem.

Но в Select-String есть дополнительные ключи, которые могут быть полезны. Вот часть из них:

  • CaseSensitive — в обычных командлетах и сравнениях Powershell «а» и «А» одинаковые буквы. Если поставить этот ключ, то они станут разными
  • Pattern — если с ключом SimpleMatch мы можем найти конкретную строку (нельзя использовать * звездочку), то с этим ключом мы можем использовать регулярные выражения.

Теги:

#powershell

У данного командлета присутствуют несколько псевдонимов (aliases) — ls, dir, gci.

Разберем аргументы командлета позволяющие выполнить поиск файлов.

Поиск По Маске

Аргументы командлета Get-ChildItem позволяют выполнить поиск файлов. Доступные параметры, маска имени файла (-Filter), стартовая директория поиска (-Path), и возможность рекурсивного поиска в поддиректориях (-Recurse).

Поиск по маске, для примера осуществим вывод всех файлов с расширением ZIP.

# Вывод файлов с раширением *.zip
Get-ChildItem *.zip

Файловые маски не могут содержать регулярных выражений, только стандартные «*» (любое количество символов) и «?» (один любой символ).

# Вывод файлов с раширением *.zip и именем состоящим из трех символов
Get-ChildItem ???.zip

Как можно заметить, указывать параметр -Filter не обязательно, командлет сам понимает что ему была передана фильтрующая маска. Порядок следования параметров без их конкретного указания можно посмотреть во встроенной справке.

# Вывод справки
Get-ChildItem -?

Параметр -Path позволяет задать путь начала поиска. Так же он допускает использовать символы файловых масок. Можно совмещать комбинацию фильтров в параметре -Path и -Filter.

Выведем содержимое диска C:.

# Вывод содержимого указанной директории
Get-ChildItem C:

# То же самое что и выше, но с прямым указанием параметра
Get-ChildItem -Path C:

По умолчанию, выводится только содержимое текущей директории, но для полноценного поиска файлов необходимо выполнить обход всех файлов во всех поддиректориях. Осуществить такой обход позволяет параметр -Recurse.

Попробуем найти все файлы с расширением *.msc на диске C:.

# Вывод всех файлов *.msc на диске C:
Get-ChildItem -Path C: -Filter *.msc -Recurse -ErrorAction SilentlyContinue

Как вы могли заметить, при выводе содержимого диска C: отсутствовали скрытые файлы. Отображение скрытых и системных файлов задается атрибутами, о которых поговорим далее.

Поиск По Атрибутам

По умолчанию, скрытые файлы не попадают выходной список командлета Get-ChildItem. Вывод файлов с различными атрибутами, такими как скрытый, системный и прочее, можно задать с помощью параметра -Attributes.

Возможные значения для данного параметра можно посмотреть во встроенной справке по командлету (Get-ChildItem -?).

Важные, или популярные, атрибуты вынесены в отдельные параметры, а именно -Directory, -File, -System, -Hidden.

Попробуем посмотреть файлы скрытые файлы на диске C:.

# Вывод файлов диска C:
Get-ChildItem C:

# Вывод файлов диска C: включая скрытые
Get-ChildItem C: -Hidden

При указании параметра -Hidden выводятся только скрытые файлы и папки.

С параметром -Attributes все иначе. Он позволяет комбинировать файловые атрибуты. Доступны три операции:

!NOT, исключает файлы с данным атрибутом (!Directory)
+AND, включает файлы со всеми указанными атрибутами (System+Hidden)
,OR, включает файлы с хотя бы с одним указанным атрибутом (System, Hidden, Directory)

Модификаторы можно комбинировать.

# Вывод файлов диска C: с атрибутами - скрытый, системный, директории
Get-ChildItem C: -Attributes H,S,D

Сами названия атрибутов можно сокращать, что собственно и было продемонстрировано выше.

Поиск По Дате

Список файлов полученный с помощью вышеописанных способов можно отфильтровать по дате. Делается это с помощью передачи результатов выполнения командлета Get-ChildItem командлету Where-Object.

Пример фильтрации вывода команды по дате, с применением псевдонимов.

# Вывод файлов дата которых больше или равна дате 28.10.2019 20:00
ls | ? LastAccessTime -GE (Get-Date "28.10.2019 20:00")

Для командлета Where-Object можно задать так же другие условия, или даже несколько условий. Подробнее об этом можно узнать в справке по данному командлету.

Поиск По Содержимому

Поиск по содержимому, предполагает обход всех файлов с целью найти в них искомый текст. Выполнить данную операцию можно с помощью передачи всех файлов по конвейеру командлету Select-String.

Для примера я создал три текстовых файла с текстом:

1.txt (first)
2.txt (second)
3.txt (first second third)

Структура расположения файлов следующая.

Теперь примеры поиска текста в данных файлах с помощью PowerShell.

# Поиск всех файлов с текстом "first"
Get-ChildItem -Recurse | Select-String "first"

Вывод данной команды немного скудный, нет информации о файлах. Это легко поправить, выполнив передачу полученных данных снова командлету Get-ChildItem. На этот раз воспользуемся псевдонимами для сокращения ввода команд.

# Поиск всех файлов с текстом "first" с подробным выводом информации о файлах
ls -r | Select-String "first" | ls

Использование Найденных Файлов

Полученные списки файлов, всеми вышеописанными способами, можно передавать по конвейеру таким командлетам как Remove-Item, Move-ItemCopy-Item и прочим подобным. Тем самым упрощая работу с полученными файлами.

Итог

В статье было рассмотрено: Как выполнить поиск файлов в командной оболочке PowerShell?

Get-ChildItem cmdlet in PowerShell is used to get items in one or more specified locations. Using Get-ChildItem, you can find files. You can easily find files by name, and location, search file for string, or find file locations using a match pattern.

Very often, we store files anywhere on the drive where they shouldn’t be put, and later after a few months, we have so many files copied at different locations and remain an unorganized way.

If we try to find a file stored anywhere on the drive, using a manual search or windows provided search filter with wild card characters takes a lot of time and more frustration.

In this article, I will explain different and best possible ways to find files that match a pattern or find files by extension in PowerShell

Using PowerShell Get-ChildItem cmdlet to show a list of files or directories in one or more locations.

The Get-ChildItem cmdlet provides more flexibility for simple or advanced wildcards to find files by a search pattern.

Using Recurse parameter to get items recursively from all the child containers. You can limit the Depth parameter to limit the number of levels to recurse.

Cmdlet: Get-ChildItem

Syntax:

Get-ChildItem
   [[-Filter] <string>]
   -LiteralPath <string[]>
   [-Include <string[]>]
   [-Exclude <string[]>]
   [-Recurse]
   [-Depth <uint32>]
   [-Force]
   [-Name]
   [-Attributes <FlagsExpression[FileAttributes]>]
   [-FollowSymlink]
   [-Directory]
   [-File]
   [-Hidden]
   [-ReadOnly]
   [-System]
   [<CommonParameters>]

Let’s understand using PowerShell to find files by name, by extension, or find files recursively with different examples as given below.

Do you know: Using IIS to get a list of websites in PowerShell!

PowerShell Find files by extension in the current directory

To find all files by extension in the current directory that matches wildcard pattern *.txt

PS C:Temp> Get-ChildItem *.txt

Above command, find files in the current directory that matches extension .txt

PowerShell Find all files on the root of drive D:

To find and list all files stored on drive D: location, using Get-ChildItem is given below

PS C:> Get-ChildItem -Path D:

Above Get-ChildItem cmdlet takes D: as path and lists all the directory and files stored on location. It displays results items with Mode, LastWriteTime, and Length Name columns.

PowerShell Find File Recursively using Recurse parameter

To find and list all files stored on drive D: location, using PowerShell Get-ChildItem with Recurse parameter in PowerShell.

PS C:> Get-ChildItem -Path D: -Recurse

Using recurse parameter will list all files that the user has access to, however, doing recurse operation, if the user doesn’t have access to any of the resource items, it will throw an error.

To continue with Recurse operation even in the case of error, using ErrorAction parameter with silentlyContinue continue its operation.

PS C:> Get-ChildItem -Path D: -Recurse -ErrorAction SilentlyContinue

PowerShell Tip: How to add a newline to string or variable?

Search for files that do not match using exclude parameter

To find all files in current and subdirectory that do not match PowerShell wildcard *.exe, we can do it using exclude parameter

PS D:Temp> Get-ChildItem -Exclude *.exe -Recurse

Above command, get a list of all files exclude *.exe files in subdirectories using recurse parameter in PowerShell.

PowerShell Tip: How to search string in files using PowerShell Grep!

Get a list of all files in directory that matches a pattern

To get a list of all files in directory and subdirectory that matches PowerShell wildcard pattern *.doc,*.docx

PS D:Temp> Get-ChildItem -Include *.doc,*.docx -File -Recurse -ErrorAction SilentlyContinue

In the above example, Get-ChildItem uses the Include parameter to find *.doc or *.docx files from the directory or its subdirectories using Recurse parameter.

Use ErrorAction silentlyContinue to continue with finding files even without having errors.

Above command, search for files and get a list of all files in a directory in PowerShell.

Find file all items in subdirectories match specific filter

Using -Filter parameter to get list of all files from subdirectories that match filter *.txt

PS D:Temp> Get-ChildItem -Filter *.txt -Recurse

Above Get-ChildItem command using Recurse parameter to recursively iterate in folder and subfolders and filter parameter with *.txt to get only *.txt file extension files only.

Above PowerShell script find files recursively with extension.

Cool Tip: Replace text in string using PowerShell!

PowerShell Find Filename containing string

To find all files containing a string in a given directory or subdirectories, use the below command

PS D:Temp> Get-ChildItem -Recurse | Where {$_.Name -match 'Replace'} | Select Fullname

FullName                  
--------                  
D:TempReplace-Method.txt

In the above example, Get-ChildItem uses Recurse parameter to recursively find all files.

Using Where-Object cmdlet to compare name property that matches with ‘Replace’ and returns FullName of the file.

In the above script, search file for string and get file name that matches the string.

We can also use Get-ChildItem alias gci to query and file name containing a string as below

PS D:Temp> gci -Recurse | Where {$_.Name -match 'Replace'} | Select Fullname

FullName                  
--------                  
D:TempReplace-Method.txt

PowerShell Find Files in Directory containing string

To find all files in the directory containing string, use the below command

PS D:Temp> Get-ChildItem -Recurse | Where {$_.DirectoryName -match 'Debug'} | Select Fullname

In the above example, Get-ChildItem use Recurse parameter to recursively find all files in the Directory

Using Where-Object cmdlet to compare DirectoryName property that matches with ‘Debug’ and returns FullName of the files in that directory.

We can also use PowerShell Get-ChildItem alias gci to query and list all files within directory name containing a string as below

PS D:Temp> gci -Recurse | Where {$_.DirectoryName -match 'Debug'} | Select Fullname

PowerShell Tip: How to get MD5 checksum or SHA checksum for file in PowerShell!

PowerShell Find File by WildCard

To find all the files in directory or subdirectories that match PowerShell wildcard

PS D:Temp> Get-ChildItem | Where-Object { $_.Name -match '[a-z].txt$' }


    Directory: D:Temp


Mode                LastWriteTime         Length Name                                                        
----                -------------         ------ ----                                                        
-a----       10-07-2021     11:11            196 Replace-Method.txt  

In the above example, it finds files using PowerShell wildcard as [a-z].txt$ and gets a list of all files.

Cool Tip: ErrorAction and ErrorVariable parameters in PowerShell!

PowerShell Find Files Older than Specific Days

To find files older than specific days, use PowerShell Get-ChildItem to get file objects and compare file creation date with current date – 15 days.

 Get-ChildItem -File | Where-Object {$_.CreationTime -lt (Get-Date).AddDays(-15)} | Select Name, CreationTime | sort CreationTime -Descending

In the above PowerShell script, the first command gets the file object and passes the output to the second command.

Second command, Where-Object compare file creation date with current date – 15 days using Get-Date cmdlet and passes the output to the third command.

The third command selects file name and file creation date time format and passes the output to the fourth command.

In the last command, sort file creation date-time descending and gets a list of files older than 15 days before.

Conclusion

I hope you find the above article on using the PowerShell Get-ChildItem cmdlet to find files that match search patterns or find files by extension, or name helpful.

I tried to explain different ways to search for files by wildcard, file by name, file by location or directory, or get folders only in the file system.

You can find more topics about PowerShell Active Directory commands and PowerShell basics on the ShellGeek home page.

I wanted to write a small script that searched for an exact file name, not a string within a file name.

For instance if I search for ‘hosts’ using Explorer, I get multiple results by default. With the script I want ONLY the name I specify. I’m assuming that it’s possible?

I had only really started the script and it’s only for my personal use so it’s not important, it’s just bugging me. I have several drives so I started with 2 inputs, one to query drive letter and another to specify file name. I can search by extension, file size etc but can’t seem to pin the search down to an exact name.

Any help would be appreciated!

EDIT : Thanks to all responses. Just to update. I added one of the answers to my tiny script and it works well. All three responses worked but I could only use one ultimately, no offence to the other two. Cheers. Just to clarify, ‘npp’ is an alias for Notepad++ to open the file once found.

$drv = read-host "Choose drive"
$fname = read-host "File name"
$req = dir -Path $drv -r | Where-Object { !$PsIsContainer -and  [System.IO.Path]::GetFileNameWithoutExtension($_.Name) -eq $fname }
set-location $req.directory
npp $req

Skip to content

PowerShell — Поиск файлов

PowerShell — Поиск файлов

Хотите узнать, как искать файл с помощью Powershell? В этом учебнике мы покажем вам, как использовать Powershell для поиска файлов на компьютере под управлением Windows.

• Windows 2012 R2
• Windows 2016
• Windows 2019
• Windows 10

Список оборудования

В следующем разделе представлен список оборудования, используемого для создания этого учебника.

Как Amazon Associate, я зарабатываю от квалификационных покупок.

Похожий учебник — PowerShell

На этой странице мы предлагаем быстрый доступ к списку учебников, связанных с PowerShell.

Учебник Powershell — Поиск файлов

Запустите командную линию Powershell.

Start Powershell

Поиск файла на всем диске.

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

В нашем примере мы искали текстовый файл под названием TEST на всем диске.

Поиск измененных файлов за последние 10 дней.

В нашем примере мы искали текстовые файлы, измененные за последние 10 дней.

Поздравляю! Вы можете искать файлы с помощью Powershell.

VirtualCoin CISSP, PMP, CCNP, MCSE, LPIC22021-03-05T00:32:08-03:00

Related Posts

Page load link

Join Our Newsletter 

Stay updated with the latest tutorials

close-link

This website uses cookies and third party services.

Ok

Native Auditing

Netwrix Auditor for Windows File Servers

Steps

  1. Open the PowerShell ISE → Create a new script using the following code. In the $filename variable, specify a string that might indicate the file contains sensitive data, and for $searchinfolder, specify the directory or folder to search in.

$filename = ‘*payroll*.*’#you can use wildcards here for name and for extension
$searchinfolder = ‘\pdcSharedAccounting*’
Get-ChildItem -Path $searchinfolder -Filter $filename -Recurse | %{$_.FullName}

  1. Run the script.
  2. Review the results:

Powershell find file report

Once you have a list of files that might contain sensitive data, you might want to move them to a secure location. However, the Windows PowerShell script you create to process the files will terminate with an error if the path is invalid, so you should check whether the files and folders still exist before you run it. The following commands will help:

  • To check whether a file exists, run the following script, specifying the filename in the $checkpath string:

$checkpath = ‘C:SharedAccountingPayroll 2016-2017.xlsx’
Test-Path -Path $checkpath

  • To determine whether there are any files in C:SharedAccounting with the .xlsx extension, run following code on your computer:

Test-Path -Path «C:SharedAccounting*» -Include *.xlsx

Note that you can use environment variables with the test-path statement. The example below shows how to detect if the $profile variable leads to a directory or a file:

Test-Path $profile -Pathtype Leaf

  1. Run Netwrix Auditor → Navigate to «Reports» → Open «User Behavior and Blind Spot Analysis» → Go to «Information Disclosure» → Select «File Names Containing Sensitive Data» → Click «View».
  2. Specify the following filters and parameters:
    • Object UNC Path – Specify the path to your file share (example: «\servershare»)
    • Disallowed Words – Specify the name of the file you want to search (example: «payroll»)
  3. Click «View Report».

To save the report, click the «Export» button → Select a format, such as PDF → Click «Save as» → Choose a location to save it.

Netwrix Auditor File Names Containing Sensitive Data: shows files with names that suggest they contain sensitive data

Find Your Sensitive Files — and Get Critical Details about Them, Too

To maintain security and compliance, IT pros need to regularly search for files that might contain sensitive data and that are stored in improper locations. One method is to find files manually using Windows Explorer. However, this approach takes a lot of time, so it is useful mainly when you need to check whether a single file exists. If you need to look for a set of sensitive files, you might want to automate the process with Microsoft PowerShell scripts to save time. For instance, the PowerShell script provided above will findall files that have “Payroll” in their name, and the Get-ChildItem -path command restricts the search to a specified folder and its subfolders.

Once you have a list of files that might contain sensitive data, you might want to move them to a secure location. However, the Windows PowerShell script you create to process the files will terminate with an error if either the input or output path is incorrect, so you might need to check if the files and folders still exist before you run your script. The Test-Path cmdlet will check whether a path (with or without a file name) is valid; it returns a value of true or false. The Pathtype parameter specifies the type of the final element in the path (Any, Container or Leaf). Additionally, you can narrow your results down using wildcards with the -Filter, -Exclude or -Include parameters instead of specifying a full filename.

Wouldn’t you rather just open a prebuilt report to check whether your sensitive data is stored only in proper locations, instead of spending all that time writing and running scripts? Try Netwrix Auditor for Windows File Servers. It’s easier — and you’ll get a lot more data. In addition to the object paths, you’ll see the file ownership details, the activity trail around the files and the user access permissions.

Содержание

  • Способ 1: Поиск в «Проводнике»
  • Способ 2: Поиск в «PowerShell»
  • Способ 3: Использование стороннего ПО
  • Вопросы и ответы

Как искать файлы по дате в Windows 10

Способ 1: Поиск в «Проводнике»

В Windows 10 имеется встроенный механизм поиска, позволяющий искать файлы и папки по разным критериям, в том числе по дате и времени. Он далек от совершенства, тем не менее, вы можете его с успехом использовать, если не предъявляете к системе поиска слишком высоких требований.

  1. Зайдите в раздел или каталог, в котором хотите найти файлы на указанную дату или период времени.
  2. Определите для себя, хотите вы найти файлы по дате создания или дате изменения, так как от этого будет зависеть используемый шаблон поиска.
  3. Если вы хотите найти файлы по дате создания, вставьте в поисковое поле строку датасоздания:DD.MM.YYYY, где DD – это день, MM – месяц, а YYYY – год.
  4. Как искать файлы по дате в Windows 10-1

  5. Если требуется найти файлы за определенный период, то его нужно указать в формате DD.MM.YYYY .. DD.MM.YYYY.
  6. Как искать файлы по дате в Windows 10-2

  7. Также для поиска файлов за определенный период можно использовать ключевые слова «сегодня», «вчера», «на этой неделе», «на прошлой неделе», «в этом месяце», «в прошлом месяце» и так далее, например датасоздания:на этой неделе.
  8. Как искать файлы по дате в Windows 10-3-1

  9. Если нужно найти файлы по дате изменения, в шаблоне необходимо заменить часть запроса датасоздания на датаизменения.
  10. Как искать файлы по дате в Windows 10-4

Кстати, шаблоны поиска по дате изменения доступы в интерфейсе средств поиска в одноименной вкладке ленты «Проводника». По умолчанию поиск выполняется во всех вложенных папках, если вы хотите искать файлы только в текущей папке, нажмите в средствах поиска кнопку «Текущая папка».
Как искать файлы по дате в Windows 10-5

Способ 2: Поиск в «PowerShell»

Для поиска файлов по дате можно использовать другой штатный инструмент Windows 10 – консоль «PowerShell», однако это не столь удобный способ. Как и в случае поиска средствами «Проводника», в данном случае будут использоваться редактируемые шаблоны.

  1. Запустите «PowerShell» из контекстного меню кнопки «Пуск» или любым другим известным вам способом.
  2. Как искать файлы по дате в Windows 10-4-1

  3. Выполните команду $date = Get-Date -Year 2022 -Month 10 -Day 05, где значения параметров «Year», «Month» и «Day» формируют дату начала периода, за который станет выполняться поиск. То есть, если текущей датой, к примеру, является 10 октября, при этом вы хотите найти файлы, созданные от 5 октября до настоящего момента, то именно эту дату нужно указать в качестве значения параметра «Day».
  4. Как искать файлы по дате в Windows 10-6

  5. Теперь выполните команду Get-ChildItem -Path "D:Загрузки" -Recurse | Where-Object {$_.LastWriteTime -ge $date}, заменив элемент D:Загрузки своим полным путем к папке или диску, внутри которого будет выполняться поиск. Поиск выполняется и по вложенным каталогам, а если это не нужно, уберите из команды ключ -Recurse.
  6. Как искать файлы по дате в Windows 10-7

  7. Результаты будут выведены в консоль.
  8. Как искать файлы по дате в Windows 10-8

Способ 3: Использование стороннего ПО

Но самым удобным способом организации быстрого поиска по дате является использование сторонних программ, например Everything. Эта небольшая, но мощная программа позволяет практически мгновенно искать файлы не только по дате, но и по множеству других критериев. Рассмотрим, как искать в этой программе файлы по дате.

Скачать Everything

  1. Скачайте актуальную версию приложения и установите. После запуска Everything выведет огромный список папок и файлов. Чтобы отсортировать полученные данные, выберите в меню «Поиск»«Расширенный поиск».
  2. Как искать файлы по дате в Windows 10-9

  3. В окошке настроек укажите начальную и конечную даты диапазона дат.
  4. Как искать файлы по дате в Windows 10-10

  5. Прокрутите окошко немного вниз и выберите типы нужных вам файлов (не обязательно). Нажмите «OK», чтобы начать поиск.
  6. Как искать файлы по дате в Windows 10-11

Результаты поиска за указанный временной период будут выведены в основном окне программы. При необходимости вы также можете воспользоваться фильтрами, выбрав в меню «Поиск» тип данных, например «Картинки» или «Документы».
Как искать файлы по дате в Windows 10-12
При работе с Everything учитывайте, что для обеспечения быстрого поиска программа индексирует имеющиеся на диске данные, что занимает некоторое время. Поэтому начинать пользоваться программой лучше не сразу после установки, а немного погодя, дав ей время на создание индексной базы.

Lumpics.ru

Читайте также: Программы для поиска файлов на компьютере

Еще статьи по данной теме:

Помогла ли Вам статья?

Когда система оповещает вас о том, что на диске заканчивается свободное пространство, первое что делает администратор – пытается найти все большие файлы, которые занимают больше всего места. Вы можете использовать для поиска больших файлов проводник Windows (есть несколько предопределённых шаблонов поиска по размеру), любимый файловый менеджер или сторонние утилиты. Однако все эти средства, в отличии от PowerShell, требует установки на компьютере. Рассмотрим пример быстрого поиска больших файлов на диске с помощью PowerShell.

Для получения списка файлов в определенном каталоге (включая подпапки) и их размеров можно использовать командлет Get-ChildItem. Командлет может искать файлы по всему диску, или в определенной папке (например в пользовательских профилях или любых других папках).

Выведем список 10 самых больших файлов на диске C::

Get-ChildItem c: -r| sort -descending -property length | select -first 10 name, Length

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

Ключ –r (Recurse) указывает, что необходимо рекурсивного обойти все вложенные обьекты (каталоги). Можно ограничить проверку определённым уровнем вложенности с помощью параметра –Depth.

Если не указывать путь, поиск будет выполнен по всем подкаталогам в текущем каталоге.

Get-ChildItem - поиск самых больших файлов на диске с помощью powershell

Как вы видите, мы получили список из десяти самых больших файлов на диске, отсортированный в порядке уменьшения размера файла.

Совет. При доступе к некоторым каталогам даже с правами администратора, командлет может вернуть ошибку доступа:

Get-ChildItem : Отказано в доступе по пути "C:WindowsCSC".
строка:1 знак:1
+ Get-ChildItem c: -r|sort -descending -property length | select -firs ...
+ ~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : PermissionDenied: (C:WindowsCSC:String) [Get-ChildItem], UnauthorizedAccessException

+ FullyQualifiedErrorId : DirUnauthorizedAccessError,Microsoft.PowerShell.Commands.GetChildItemCommand

Чтобы подавить появление таких ошибок используйтей параметр -ErrorAction SilentlyContinue.

Get-ChildItem Отказано в доступе по пути

Как вы видите, размер файлов отображается в байтах. Для удобства их можно преобразовать в мегабайты. Кроме того, можно вывести каталог, в котором хранится найденный файл:

Get-ChildItem c: -r -ErrorAction SilentlyContinue |sort -descending -property length | select -first 10 name, DirectoryName, @{Name="Мб";Expression={[Math]::round($_.length / 1MB, 2)}}

список больщих файлов на диске в мегафайтах

Полученную табличку можно преобразовать в удобную графическую форму с помощью командлета Out-GridView:

Get-ChildItem c: -r|sort -descending -property length | select -first 10 name, DirectoryName, @{Name="Мб";Expression={[Math]::round($_.length / 1MB, 2)}} | Out-GridView

Out-GridView - графическое представление таблицы со списком больших файлов

Аналогичным образом вы можете найти все файлы, размер которых больше определенного значения, например, 200 Мб):

$size=200*1024*1024
GCi C: -recurse -ErrorAction SilentlyContinue | where-object {$_.length -gt $size} | Sort-Object length | ft fullname

Список файлов можно выгрузить в CSV файл так:

GCi C: -recurse | where-object {$_.length -gt $size} | Sort-Object length | ft fullname | Export-Csv c:pcLargeFiles_Report.csv

Если нужно посчитать размер всех файлов в каталоге, воспользуйтесь статьей: Как определить размер директории с помощью PowerShell.

  • Remove From My Forums

 none

Подскажите скрипт поиска файлов и создание отчета

  • Вопрос

  • Требуется скрипт который при загрузке компа ищет в определенных папках файлы с расширением .exe, при их обнаружении создается фаил с отчетом, где бы указывалось имя файла и путь к нему. Желательно выкладку файла осуществить по сети. При отсутсвии найденных
    файлов, желательно отсутствие файла с отчетом. Желательно, чтобы этот поиск не видел пользователь.

Ответы

  • @echo off
    setlocal
    chcp 1251 1>nul

    set searchPATH=»C:FolderFolder»,»C:Some Forder»,»D:Еще Одна Папка»
    for %%i in (%searchPATH%) do 1>>report.txt dir /b /s /a «%%~i*.exe»

    • Помечено в качестве ответа

      25 июня 2010 г. 5:26

  • > Вот почему-то в профиле пользователя ищет в подпапках, а на диске C и D

    Просто в «set searchPath» в значении убери замыкающие слеши:

    set searchPATH=»C:»,»%USERPROFILE%»,»D:»

    или убери слешь в «%%~i*.exe», т.е: «%%~i*.exe»

    • Помечено в качестве ответа
      Samodelkin
      25 июня 2010 г. 5:26

Понравилась статья? Поделить с друзьями:
  • Поиск файлов по формату в windows 10
  • Поиск файлов в windows 10 cmd
  • Поиск файлов по тексту внутри файла windows 10
  • Поиск файла через командную строку windows 10
  • Поиск файлов по маске в windows 10