Поиск файлов в windows, измененных после заданной даты с помощью командной строки
Мне нужно найти файл на моем диске, измененный после заданной даты с помощью командной строки.
например:
dir /S /B WHERE modified date > 12/07/2013
5 ответов
вы можете использовать PowerShell для этого, попробуйте:
Get-ChildItem -Recurse | Where-Object { $_.LastWriteTime -ge "12/27/2016" }
на forfiles
команда работала для меня в Windows 7. Статья здесь:
http://www.windows-commandline.com/find-files-based-on-modified-time/
Microsoft Technet doc:http://technet.microsoft.com/en-us/library/cc753551.aspx
для примера выше:
forfiles /P <dir> /S /D +12/07/2013
- / P начальный путь для поиска
- /S рекурсия в подкаталоги
- /D дата для поиска "+" означает "больше" или "с"
Я был после того, как размер файлов изменился, и у меня не было Powershell, я использовал следующее, но ключ пришел из другого сообщения
http://www.scotiasystems.com/blog/it-hints-and-tips/quick-way-to-find-recently-changed-files-in-windows и команда Windows только для размера файла?
set Target=E:\userdata
rem Date format is M-D-YYYY
set date=12-13-2013
set Filelist=d:\temp\filelist.txt
set Sizelist=d:\temp\sizelist%date%.csv
echo Target is %Target%
echo Start date is %date%
echo file list is %Filelist%
echo Sizelist is %sizelist%
Xcopy %Target% /D:%date% /L /S > %Filelist%
echo FileSize (bytes), FileName > %sizelist%
For /f "tokens=1 delims=;" %%j in (%Filelist%) do (
call :Size "%%j"
)
Goto :EOF
:Size
@echo off
echo %~z1, %1 >> %sizelist%
у меня была та же проблема, поэтому я создал список с помощью XCOPY и измененной даты, которую я искал, а затем использовал цикл for, чтобы пересечь список и добавить информацию о дате/времени, необходимую для каждого файла в журнал.
xcopy X:\file_*.log X:\temp /D:07-17-2014 /L /Y > X:\files.txt
for /f "tokens=* delims=" %%a in (X:\files.txt ) do (
@echo %%~ta %%a >> X:\files.log
)
привело к чему-то вроде следующего, что именно то, что я хотел.
X:\>()
07/17/2014 09:41 AM X:\file_201407170600.log
X:\>()
07/17/2014 09:41 AM X:\file_201407170615.log
X:\>()
07/17/2014 09:23 AM X:\file_201407170630.log
Если вы решите использовать power shell, это также будет работать с диапазонами времени и даты:
Get-ChildItem -Recurse | Where-Object {($_.LastWriteTime -ge "04/15/2018 20:00:00") -and ($
_.LastWriteTime -lt "04/15/2018 21:00:00")}