У нас есть программа, которая берет определенные XML-файлы и импортирует их, а затем изменяет файл с .xml на .tmp.Как только он превратится в .tmp, мы можем удалить файл.
Иногда случается, что файл XML не импортируется должным образом, и в этом случае он переименовывается из .xml в .bad, и файл должен быть вручнуюотрегулирован (может быть неправильный XML-файл или что-то еще).Мы обнаружили, что примерно в 90% случаев, когда вы переименовываете файл обратно в .xml, он хорошо импортируется.
Я создал пакетный скрипт для запуска каждые пару минут, который автоматически удаляет файл.TMP файлы.Я также хочу добавить что-то в скрипт, который переименовывает файл .bad в .xml, чтобы позволить программе попробовать и импортировать его снова.Это покроет 90%.
Чтобы покрыть последние 10%, я бы хотел настроить его так, чтобы примерно через 10 минут он больше не пытался переименовать файл .bad обратно.xml (на основе даты создания).
Пока что у меня есть скрипт для удаления файлов .tmp:
forfiles -p "C:\path\to\xml" -m *.tmp -c "cmd /c del @PATH"
И у меня есть скрипт для переименования .bad в.xml:
forfiles -p "C:\path\to\xml" -m *.bad -c "cmd /c ren *.bad *.xml"
Как мне указать 2-й команде делать это только для файлов, дата создания которых (не дата последнего изменения) была менее 10 минут назад?
Обновлено:
Вот полное решение (спасибо Джону Z за указание в правильном направлении):
powershell.exe -command "get-childitem 'path\to\xml' -filter *.tmp | Remove-Item"
powershell.exe -command "get-childitem 'path\to\xml' -filter *.bad | where-object {$_.creationtime -gt (get-date).addminutes(-8)} | foreach-object {move-item $_.fullname ($_.fullname-replace '.bad','.xml')}"