BAT: если заявление основано на дате изменения файла - PullRequest
1 голос
/ 14 июня 2011

Я хочу посмотреть, будет ли дата изменения файла блокировки более 5 секунд назад или в будущем (что указывает на то, что часы ПК были изменены).

Как я могу сказать

  • если file.modifydate <сейчас - 5 секунд или модифицировать> сейчас
    • запустить команду a (команда a запустит мое Java-приложение)
  • иначе
    • выполнить команду b (команда b отправит пакет UDP на порт локального хоста)

1 Ответ

2 голосов
/ 17 июня 2011

Как предположил Виммель, я буду использовать VBScript - ну, на самом деле я буду использовать JScript так же, как обычно использовать VBScript ... потому что я уже знаком с JavaScript.

Я разместил этот вопрос: Windows XP и выше: JavaScript вместо VBScript?

Какой код я буду использовать

для проверки даты / времени изменения

var o = new ActiveXObject("Scripting.FileSystemObject");
var file = o.GetFile("c:\\temp\\test.js");
// WScript.Echo(file.DateLastModified); // This is the modify date/time with seconds

и код для выполнения моего Java-процесса

WshShell = WScript.CreateObject("WScript.Shell");
var result = WshShell.Run("command-goes-here", 0, true);
// WSH.Echo(result); // this is the exit code

Команда b будет отправлять UDP-пакет, используя одно из предложений Windows BAT или CMD: отправка некоторых данных на локальный порт udp .

Команды, вероятно, были бы одинаковыми, если бы я использовал VBScript / JScript, поэтому они должны работать нормально.

Единственное, чего не хватает: VBScript / JScript Сеть: подключите либоUDP или TCP

Если бы я мог использовать встроенную функцию, это определенно было бы лучше, чем выполнение команды b.

...