хотел бы иметь BAT-файл, который запускает set-keys.EXE, запускает default.html, а затем, когда пользователь закрывает html, запускает set-keys-back.EXE. (все они находятся в одном каталоге вместе). Это может быть запущено с компакт-диска, поэтому у меня может не быть возможности записать файл флага, а затем подождать, чтобы увидеть, удален ли он, чтобы продолжить. Уже пробовали START/WAIT, но увидели, что WAIT на самом деле не будет ждать 32-битных приложений с графическим интерфейсом. Рассмотрев один пакетный файл, вызывающий другой, все еще не повезло. Предпочел бы, чтобы PAUSE не было, и пользователю приходилось возвращаться к CMD, чтобы просто нажать клавишу - кажется неуклюжим. Когда они закрываются из HTML, я запускаю top.window.close(). было бы неплохо, если бы я мог поместить какой-нибудь другой код после этого, но я думаю, что как только окно закрывается, оно закрывается - больше никакой обработки. не удалось запустить выполнение WShell. Строка состояния HTML просто говорит об ошибке на странице - нет информации. Хотелось бы услышать ваши мысли...
CMD запускает EXE, запускает HTML, ждет закрытия и запускает окончательный EXE
Ответы (1)
Обновление 2: я только что понял, что вы можете запускать IE напрямую, без использования команды start
:
@echo off
rem You can use %SCRIPTDIR% to refer to the file to load, if you like
rem Note that %SCRIPTDIR% will contain a trailing slash!
set SCRIPTDIR=%~dp0
echo Testing this script...
C:\PROGRA~1\INTERN~1\iexplore.exe %SCRIPTDIR%foo.html
echo Continuing the script...
Этот пример работает для меня (32-разрядная версия Windows XP) и ждет, пока я закрою окно браузера, чтобы продолжить.
Обновление. Вот обновленный блок кода, который запускает Internet Explorer. Обратите внимание, что я использую короткий путь к исполняемому файлу iexplore.exe
и указываю полный путь к загружаемому файлу:
@echo off
echo Testing this script...
start /wait /min cmd /C "C:\PROGRA~1\INTERN~1\iexplore.exe C:\foo.html"
echo Continuing the script...
Первоначальный ответ: вы упомянули о попытке использовать команду start /wait
, но как вы явно написали ее? Следующий пример пакетного сценария работает для меня в Windows 7 x64:
@echo off
echo Testing this script...
start /wait /min cmd /C "%windir%\system32\notepad.exe foo.html"
echo Continuing the script...
В этом примере сценарий не продолжит выполнение, пока пользователь не закроет приложение «Блокнот». Единственным недостатком здесь является то, что всплывает дополнительное командное окно, но с помощью параметра /min
мы можем запустить его свернутым.
start /wait /min cmd /C "C:\PROGRA~1\INTERN~1\iexplore.exe C:\temp\test.html"
. Мне нужно закрыть IE, чтобы скрипт продолжил работу.
- person Jonah Bishop; 11.01.2012
set STARTDIR=%~dp0
(все, что он делает, это модифицирует %0). См. эту статью для получения дополнительной информации о модификаторах параметров пакетного файла. Я еще раз обновлю свой ответ с помощью этого трюка.
- person Jonah Bishop; 11.01.2012