我有一系列批处理文件在Windows服务器上执行某些操作,然后调用一个web url,在数据库上注册操作已完成以及何时完成。
我像这样调用网络文件
Start "http://the_url"
它工作正常,但我注意到浏览器在后台进程中仍然存在,但是如果我与用户一起登录,则没有打开的浏览器窗口。
我可以在同一个批处理文件中关闭浏览器吗?有一种更好的方式来调用网址吗?
答案 0 :(得分: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。 检查能够执行多种http请求的winhttpjs.bat。
答案 1 :(得分:2)
您将需要浏览器的进程ID才能将其终止。如果在执行Start
命令时另一个浏览器已打开,则可能会出现问题。但是,可以通过迭代tasklist
的输出this answer来实现。获得此进程ID(PID)后,可以调用taskkill
来结束它。
答案 2 :(得分:0)
您可以只使用Powershell命令,而不是启动浏览器,例如:
powershell Invoke-WebRequest -Uri "http://the_url/"
如果在URL上执行GET是唯一需要的,那么这应该可以解决问题。