Я работаю над пакетным файлом Windows для выполнения двусторонней синхронизации с сервером. Пакетный файл будет использоваться несколькими людьми для синхронизации нескольких компьютеров с одним сетевым расположением. Из-за ограничений, в которые я не буду вдаваться, это ДОЛЖЕН быть пакетный файл. Нет vbscript, нет javascript, только пакет Windows. Команды Powershell могут быть в порядке, если я могу запускать их из пакетного файла.
Чтобы разрешить удаление файлов, он несколько раз запускает robocopy. Во-первых, он копирует файлы новее, чем в последний раз, когда скрипт запускался с помощью ключа /MAXLAD. Он делает это в обоих направлениях. Затем он делает зеркало с ключом /l и проверяет код выхода, чтобы обнаружить лишние файлы. Если у какой-либо из сторон есть лишние файлы, она запускает зеркало по-настоящему в соответствующем направлении.
Скрипт работает как есть, но...
Проблема в том, что /MAXLAD принимает дату в формате ГГГГММДД, поэтому, если вы создадите файл локально, запустите скрипт синхронизации, затем немедленно удалите файл и снова выполните синхронизацию, он вернется из могилы. Чтобы успешно удалить файл, он должен оставаться неизмененным как минимум за день до последнего запуска скрипта. Я хотел бы каким-то образом снять это ограничение, чтобы его можно было запускать так часто, как захотят мои пользователи, и чтобы оно работало должным образом.
Мой вопрос заключается в следующем: есть ли способ уточнить время последнего доступа? Даже если бы я мог сузить его до часа, это было бы улучшением. Должен ли я делать что-то кроме robocopy для копирования новых файлов?