批处理文件以确定IE中的网站

时间:2018-07-24 08:34:26

标签: windows batch-file internet-explorer

是否可以在批处理文件中使用一段代码来确定首先是否打开IE,以及是否在选项卡中打开了哪些网站?

当用户锁定PC并打开特定网站时,我需要强制关闭IE。

先谢谢了。

1 个答案:

答案 0 :(得分:1)

尝试使用此批处理文件:

@echo off
Title Checking Running Process and Get their command lines
setlocal enabledelayedexpansion
Mode 90,25 & color 0A
Set "ProcessName=iexplore.exe"
Set "String2Search=facebook"
Call :CheckRunning !ProcessName!
If /I "%flag%"=="True" (
    color 0A
    echo %flag%
    Call :GetCommandLine !ProcessName!
    echo(
    Call :CheckString_in_URL "%String2Search%"
) else (
    color 0C
    echo %flag%
    echo !ProcessName! is not running !
    pause>nul & exit
)
Exit
::********************************************************************************************************
:CheckRunning <ProcessName>
Set "ProcessName=%1"
tasklist /NH /FI "imagename eq %ProcessName%" 2>nul |find /i "%ProcessName%" >nul
If not errorlevel 1 ( Set "flag=True" ) else ( Set "flag=False" )
Exit /b 
::********************************************************************************************************
:GetCommandLine <ProcessName>
Set "ProcessCmd="
for /f "tokens=2 delims==" %%P in ('wmic process where caption^="%~1" get commandline /format:value ^| findstr /I "%~1" ^| find /I /V "%~nx0" 2^>nul') do (
    Set "ProcessCmd=%%P"
    echo !ProcessCmd!
)
Exit /b
::******************************************************************************************************
:Kill <ProcessName>
Taskkill /IM "%~1" /F>nul 2>&1
Exit /b
::******************************************************************************************************
:CheckString_in_URL <String2Search>
set "String2Search=%~1"
(
echo Set objFso = CreateObject^("Scripting.FileSystemObject"^)    
echo Set colShWindows = CreateObject^("shell.application"^).Windows
echo For Each w In colShWindows
echo    If objFso.GetFileName^(LCase^(w.FullName^)^) = "iexplore.exe" Then
echo        WScript.Echo w.LocationURL
echo    End If
echo Next
)>"%Temp%\iexplore_tabs.vbs"

setlocal EnableDelayedExpansion
for /f %%a in ('cscript //nologo "%Temp%\iexplore_tabs.vbs"') do (
    set /a index+=1
    set "URL[!index!]=%%a"
)

for /L %%i in (1,1,%index%) do (
    echo !URL[%%i]! | find /I "%String2Search%">nul && ( 
        echo Found this string "%String2Search%" in the URL "!URL[%%i]!"
        echo(
        echo Did you want to kill this process "!ProcessName!" Y/N ?
        Set /p "Answer="
            If /I "!Answer!"=="Y" ( Call :Kill "!ProcessName!" ) else ( exit )
        ) || (
            echo No string like "%String2Search%" found in "!URL[%%i]!"
            Timeout /T 5 /nobreak>nul
        )
)
exit /b 
::******************************************************************************************************

我很感谢给我一个 how to enumerate the URLs of the InternetExplorer tabs