Как найти файлы в диапазоне дат - PullRequest
0 голосов
/ 30 апреля 2020

Я хотел найти файлы, которые были созданы / изменены с 7 дней до go до сегодняшнего дня, вывод FORFILES /D +*7 days ago date* - это то, что я хочу. Но я хочу, чтобы дата менялась автоматически каждый день, а не вручную.

Я пытался использовать powershell для получения даты, но cmd выдает ошибку.

SET dateRef=powershell.exe (get-date).AddDays(-7).ToString('MM/dd/yyyy')
forFiles /p <path here> /d +%dateRef%

Cmd выдает ошибку ERROR: Invalid argument/option - '(get-date).AddDays(-7).ToString('MM/dd/yyyy')'.

Ответы [ 2 ]

1 голос
/ 30 апреля 2020

Вы можете получить вывод команды, используя For / F

for /f "usebackq" %%a in (`powershell.exe -command {& "(get-date).AddDays(-7).ToString('MM/dd/yyyy')"}`) do set dateRef=%%a
forFiles /p <path here> /d +%dateRef%
0 голосов
/ 30 апреля 2020

Используя powershell, вы можете изменить все файлы, измененные за последние 7 дней:

Get-ChildItem | Where LastWriteTime -gt (Get-Date).AddDays(-7)

Если вам необходимо создать список для использования в вашем пакетном файле:

Get-ChildItem | Where LastWriteTime -gt (Get-Date).AddDays(-7) | Select -Expand FullName | Out-File list.txt
...