2011-01-19 14 views
0

Эй, ребята, я ищу пакетный файл, чтобы сообщить мне, были ли изменены некоторые папки сегодня (я буду запускать его каждое утро). Я рад указать, что каждая из папок должна быть запрошена, я просто не смог найти все, что соответствует моим требованиям. Если кто-то знает с головы, что такое код для .bat, это было бы потрясающе :) Спасибо заранее.Пакетный файл для определения измененных дат

ответ

0

вы можете использовать VBScript

Set objFS = CreateObject("Scripting.FileSystemObject") 
strFolder = WScript.Arguments(0) 
Set objFolder = objFS.GetFolder(strFolder) 
If DateDiff("d", Now, objFolder.DateLastModified) = 0 Then 
    WScript.Echo "0" 
End If 

в пакетной обработки файлов (или командной строки)

C:\test>cscript //nologo test.vbs myFolderName 

Используйте цикл для перехвата данных. (Или вы даже можете сделать все, что в VBScript)

1

Вот командный файл, который должен сделать трюк:

@echo off 
setlocal ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION 
for /D %%Q IN (*.*) DO (
    set FILETIME=%%~tQ 
    if "!FILETIME:~0,10!"=="%DATE:~4%" echo %%Q 
) 

Это работает путем сравнения финиковой части файла метка времени от текущей даты.

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

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

Смежные вопросы