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