Пакетный скрипт сбрасывает метку времени для всех файлов - PullRequest
0 голосов
/ 12 февраля 2012

В Windows 7 как очистить или установить на сегодня временную метку всех файлов и подфайлов в определенном каталоге?Я уже отключил сохранение метки времени с помощью fsutil behavior set disablelastaccess 1, но на данный момент оно было сохранено.Как я могу это очистить?

1 Ответ

3 голосов
/ 12 февраля 2012

Это неправильный синтаксис, но copy file+ обновит последний записанный атрибут файла без внесения каких-либо изменений в содержимое.Файл должен находиться в текущем каталоге.

Вышеуказанное работает в Vista.Я также видел copy file+,, вместо этого.Это также работает в Vista, и, возможно, эта форма требуется в некоторых других версиях Windows.

Я не уверен, что вы имеете в виду, когда говорите, что «отключили сохранение метки времени с помощью fsutil behavior set disablelastaccess 1».Последняя записанная метка времени будет обновляться при каждом изменении файла.Единственное, что отключено, это обновление последней отметки времени доступа.Это стандартное поведение Vista в будущем.Последняя отметка времени доступа в любом случае бесполезна, поскольку Windows не устанавливает ее надежно при доступе.

Вы можете легко обновить последнюю записанную отметку времени для всех файлов в каталоге и подкаталогах, используя следующий скрипт.

@echo off
setlocal
for /d /r "someDirectoryPath" %%D in (.) do (
  cd "%%D"
  copy *+
)
...