我想写一个批处理文件,如果firefox打开则每20秒检查一次,如果打开则不需要执行任何操作。如果firefox关闭,批处理文件需要强制在某个网页上打开它。这也需要是一个无声的批次..
到目前为止我已经尝试过了:
@echo off
Set WShShell = WScript.CreateObject("WScript.Shell")
tasklist /fi "firefox.exe" 2>NUL | find /i /n "firefox.exe">NUL
if %ERRORLEVEL%==1 goto nofirefox
cmd /C start firefox.exe -new-tab "google.com"
答案 0 :(得分:0)
你的代码是懒惰的(VBScript系列让我大吃一惊),但我知道你要去哪里。 tasklist
命令缺失了一点。 tasklist /fi "imagename eq firefox.exe"
将在任务列表中搜索firefox。你需要一个带有ping的循环标签,无法延迟20秒。
试试这个。
@echo off
setlocal
:loop
wmic process where name="firefox.exe" get name /format:list 2>NUL | find /i "firefox" >NUL || call :relaunch
ping -n 21 0.0.0.0>NUL
goto loop
:relaunch
rem echo %time% - starting Firefox
start "" firefox.exe -new-tab http://www.google.com/
答案 1 :(得分:0)
@ECHO OFF
SETLOCAL
:loop
TASKLIST /fi "imagename eq firefox.exe" |FIND /i "firefox.exe" >nul
IF ERRORLEVEL 1 START firefox.exe -new-tab "google.com"
choice /t 20 /d y /n >NUL
IF ERRORLEVEL 2 GOTO :EOF
GOTO loop
按N
(或^C
)将退出循环。
(在XP中,用
替换CHOICE ...和ERRORLEVEL 2行PING -n 21 127.0.0.1 >nul
if exists stopfile. del stopfile.&goto :eof
然后创建stopfile.
以终止此批次)