0

Firefox が開いているかどうかを 20 秒ごとにチェックし続けるバッチ ファイルを作成したいのですが、開いている場合は何もする必要はありません。Firefox が閉じている場合、バッチ ファイルは特定の Web ページでそれを強制的に開く必要があります。これもサイレントバッチである必要があります..

私はこれまでにこれを試しました:

@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" 
4

2 に答える 2

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...とERRORLEVEL2行を次のように置き換えます

PING -n 21 127.0.0.1 >nul  
if exists stopfile. del stopfile.&goto :eof

stopfile.次に、このバッチを終了するために作成します)

于 2013-03-13T13:46:28.470 に答える
0

あなたのコードは怠惰です (そして VBScript の行は私の心を吹き飛ばしています) が、私はあなたがどこに向かっているのか分かります。tasklistコマンドが少し不足しています。tasklist /fi "imagename eq firefox.exe"Firefox のタスク リストを検索します。20 秒の遅延のためにどこにも ping を実行しないループ タグが必要です。

これを試して。

@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/
于 2013-03-13T13:34:02.797 に答える