Дешевый и веселый подход для достижения этой цели заключается в использовании общего каталога (который, вероятно, будет иметь разные пути в XP и W7, хотя вы можете использовать букву диска для общего ресурса и сделать его одинаковым на обоих). Вы можете просто использовать наличие командных и ответных файлов для синхронизации выполнения в каждой системе.
В XP у вас постоянно работает командная оболочка с циклом ядра:
:Loop sleep 10 if not exist \XPcommand.cmd goto Loop del \XPresponse.txt call \XPcommand.cmd > \XPcommand.txt ren \XPcommand.txt XPresponse.txt del \XPcommand.cmd goto Loop
Вы можете добавить запись в журнал и в противном случае улучшить сценарий. После call
команды вы можете добавить echo Completion status = %errorlevel% >> \XPcommand.txt
и подобрать это в пост-анализе.
Всякий раз, когда вы хотите выполнить команду XP из W7, вызывайте cmd
скрипт с командой, переданной в его параметрах и содержащей: -
del \XPresponse.txt echo %* > \XPcommand.cmd :Loop sleep 2 if exist \XPcommand.cmd goto Loop
Когда вы вернетесь из этого, вы можете проанализировать XPresponse.txt
и выполнить любую последующую обработку. Удаление не обязательно XPresponse.txt
, но оно просто гарантирует, что никакие предыдущие ответы не могут перепутать любые проверки W7.
Существуют бесчисленные версии sleep.exe
, которые приостанавливаются на несколько секунд, включая две от MS, в службах для Unix и в Windows Resource Kit . Количество секунд для выбора - это баланс между отзывчивостью и накладными расходами на опрос. Я предложил более короткий интервал в W7, потому что опрос выполняется только во время выполнения команды XP, а в XP - в любое другое время.