Launcherファイルを開始し、すべてのサブプログラムがロードされるのを待ち、「はい」の場合はChromeブラウザが閉じられていることを確認し、プロセスから他のすべてのプログラムを閉じるバッチスクリプトがあります。
Chrome ブラウザが閉じられていない場合は、閉じるまでループします。
発見された問題は、ループ内で find コマンドを使用したため、多くのメモリが使用されたことです。(CMD.exe の下で実行されている "Find" および "Tasklist" コマンドはほとんど見つかりませんでした) 添付のスクリーンショット。. これはプロセスエクスプローラーに基づいて発見されました。同じコードを最も簡単な方法で使用して、メモリの使用量を減らすことを提案してください。前もって感謝します。
目的 (私は、php ファイルのカスタム プログラミング用に (Chromium) バージョンの php-desktop を選択しました。(Browser) が閉じているとき、他のすべての PHP および Portable Chromium ファイルは、タスク リストで閉じられていません。このために、バッチを実行することを考えました。ブラウザのステータスのチェックを開始するプログラムであり、それが閉じられると、他のすべてのサブプログラムが強制的に閉じられました.)
@echo off
SETLOCAL
REM Main FILE to be loded and wait for 25 Sec so that sub programs will load
start Launcher.exe
timeout /t 25 /nobreak > NUL
REM Check Browser is closed if closed then goes to ITSOut if not runs untill its closed
:MAIN
tasklist | FIND "Chrome.exe" 2>NUL | find /I /N "Chrome.exe">NUL
if "%ERRORLEVEL%"=="0" GOTO :MAIN
if "%ERRORLEVEL%"=="1" GOTO :ITSout
REM Checks browser is still open (exists) after confirming it closes sub programs
:ITSout
tasklist | FIND "Chrome.exe" 2>NUL | find /I /N "Chrome.exe">NUL
if "%ERRORLEVEL%"=="0" GOTO :MAIN
FOR /f "tokens=2" %%i IN (
' tasklist ^| find "ChromiumPortable.exe" '
) DO SET pid=%%i
IF DEFINED pid (
REM ECHO TASKKILL /pid %pid% /T
TASKKILL /pid %pid% /F /T
) ELSE (GOTO :MAIN)
tasklist | FIND "Chrome.exe" 2>NUL | find /I /N "Chrome.exe">NUL
if "%ERRORLEVEL%"=="0" GOTO :MAIN
REM echo "SETLOCAL top line phpdesktop.exe is here"
FOR /f "tokens=2" %%i IN (
' tasklist ^| find "phpdesktop.exe" '
) DO SET pid=%%i
IF DEFINED pid (
REM ECHO TASKKILL /pid %pid% /T
TASKKILL /pid %pid% /F /T
) ELSE (GOTO :MAIN)
GOTO eof