Мне нужно найти файл на моем диске, модифицированный после указанной даты, используя командную строку.
Например:
dir /S /B WHERE modified date > 12/07/2013
Мне нужно найти файл на моем диске, модифицированный после указанной даты, используя командную строку.
Например:
dir /S /B WHERE modified date > 12/07/2013
Вы можете использовать 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
Я был после изменения размера файлов и не имел 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")}
Чтобы использовать программную дату или время, не зависящее от локали:
Get-ChildItem -Recurse | Where-Object {($_.LastWriteTime -ge (new-object System.DateTime 2018, 1, 10, 12, 30, 00)) -and ($_.LastWriteTime -lt (new-object System.DateTime 2018, 1, 14, 12, 15, 59))}
Где дата и время вводятся в порядке возрастания времени:
Год, месяц, день, час, минута, секунда
Вы можете искать файлы, измененные после указанной даты, используя XCOPY, как в этом примере, ища файлы с последнего дня 2018 года:
xcopy *.* c:\temp\*.* /D:12-31-2018 /L /S
В этом примере вы находитесь в каталоге, где начинается ваш поиск.
c:\temp *. * является только синтаксическим реквизитом, там ничего не будет скопировано.
/D: 12-31-2018 указывает дату изменения файлов, которую вы ищете, включая указанную дату.
/L показывает имена файлов, включая диск и путь, а также заставляет xcopy не копировать файлы.
/S поиск в подкаталогах.