Forfiles
версия файлов не является командой XP. Это более старая версия утилиты, которая изначально распространялась вместе с одним из W2K Resource Kits
(я думаю, что это относится даже к NT Resource Kit, хотя я не уверен). Нет ничего плохого в том, чтобы использовать это в XP как таковой, но если вы внимательно посмотрите на его синтаксис, он говорит (выделение мое):
-d [+| -] [DDMMYY | DD] Выбрать файлы с датой> = или <= DDMMYY (UTC) или файлы с датой> = или <= (текущая дата - ДД дней)
Обратите внимание на UTC в описании. Это означает, что (1.1) forfiles
использует разные временные метки, которые, как вы думаете, используются - если только ваше системное время не указано в формате UTC (без смещения), нет перехода на летнее время.
Это будет, вероятно, проще с примером. Я UTC+1, летнее время.
(сегодняшняя дата - 2012-09-19)
- Создать файл и сделать каталог:
2012-09-19 00:14 5 zzz_utc.txt
у него есть сегодняшняя дата, поэтому он не должен быть выбран forfiles, давайте проверим его:
FORFILES -pc:\temp -mzzz_utc.* -d-1 -c"CMD /C Echo @FILE"
zzz_utc.txt
Но это выбирается! Зачем? Давайте посмотрим на время файла UTC (следующая команда запускается из powershell):
ls .\zzz_utc.txt |select LastAccessTime,LastAccessTimeUTC
LastAccessTime LastAccessTimeUtc
-------------- -----------------
2012-09-19 00:15:11 2012-09-18 22:15:11
Как видите, TimeUtc - тот, который используется в (1.1) forfiles
, со вчерашнего дня! Вот почему он выбирается инструментом.