• Скрипт для удаления файлов до определенного часа в Windows?

    @anykey_ua
    Добрый день!
    Как вариант использовать Powershell, но в условии проверки выставить обратную фильтрацию, не "старше" от текущей даты, а "новее".
    Ответ написан
    Комментировать
  • Скрипт для удаления файлов до определенного часа в Windows?

    @res2001
    Developer, ex-admin
    Вчера отвечал на похожий вопрос, но у вас немного сложнее.
    С помощью командного файла (cmd) можно это сделать примерно следующим образом:
    Получить список файлов отсортированных в обратном порядке по времени модификации файла можно с помощью команды:
    dir /n /-c /a-d /o-d /tw *.*
    Вычислить время на час назад можно используя встроенную переменную %TIME%, которая возвращает текущее время. Переменная %DATE% - возвращает текущую дату. Не забудьте вариант смены суток. cmd не умеет работать с датой и временем, всю арифметику с датой/временем придется писать самому (выделять из %TIME% минуты и часы и производить с ними арифметические операции). Тут надо еще учесть, что числа, начинающиеся на 0 - для cmd восьмеричные и то что формат данных в %DATE% и %TIME% (и в выводе dir) зависит от установок текущей локали ОС.
    В выводе dir будет время и дата, сравниваете ее с текущей датой и вычисленным временем и если надо удаляете файл. Т.к. файлы будут отсортированы в обратном порядке по дате/времени, то после первого файла не удовлетворяющего условию можно завершать обработку.
    В помощь:
    dir /?
    for /? (ваш вариант for /f)
    set /? (для арифметики: set /a)
    Выделение подстроки из переменной описано в set /?

    В целом все можно реализовать, но вычисление даты/времени на час назад может стать не тривиальной задачей, если учитывать переход суток (а так же переход даты - дней, месяцев и годов).
    Так что, я думаю, что лучше предпочесть вариант на PoSh.
    Ответ написан
    Комментировать