2015-05-01 6 views
2

У меня есть серия пакетных файлов, которые выполняют некоторые действия на сервере Windows, а затем вызывают веб-URL, который регистрируется в базе данных, что действия завершены и когда.Закрыть браузер после его вызова

Я называю веб-файл, как этот Start "http://the_url"

Он прекрасно работает, но я заметил, что браузер сохраняется в фоновых процессах, но если войти с пользователем есть окно без какого-либо ОТКРЫЛСЯ браузера.

Могу ли я закрыть браузер в том же командном файле? Есть лучший способ назвать URL?

ответ

4

начать процесс с WMIC, чтобы получить его PID:

@echo off 
for /f "skip=5 tokens=2 delims==; " %%a in ('wmic process call create "chrome.exe url" ') do (
    set "pid=%%a" 
    goto :break 
) 
:break 
echo %pid% 
taskkill /pid %pid% /f 

Может быть лучше было бы непосредственно выполнять WebRequest без браузера. Проверьте winhttpjs.bat, который способен выполнять многочисленные запросы HTTP.

2

Вам понадобится идентификатор процесса браузера, чтобы его убить. Это может оказаться проблематичным, если другой браузер уже открыт, когда выполняется команда Start. Однако это возможно путем итерации на выходе tasklist, например this answer. Если у вас есть этот идентификатор процесса (PID), вы можете позвонить taskkill, чтобы завершить его.

0

Вместо того, чтобы начать браузер, вы могли бы просто использовать команду Powershell, такие как:

powershell Invoke-WebRequest -Uri "http://the_url/"

Если выполнение GET по URL является единственным, что требуется, это должно сделать трюк ,

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