Saya mencari skrip batch atau PowerShell bahwa jika memori yang digunakan oleh suatu proses kurang dari 10 MB, akhiri proses itu dan mulai kembali. Saya mencoba mencari banyak, tetapi saya tidak dapat menemukan solusi terbaik.
Ini adalah skrip yang saya coba tetapi tidak berhasil. Tolong bantu, terima kasih!
:start
@ECHO OFF
SET procName=iexplorer.exe
SET RAMLimit=10240
FOR /F "tokens=*" %%F IN ('tasklist^|findstr %procName%') DO SET foundString=%%F
FOR /F "tokens=5" %%F IN ("%foundString%") DO SET RAMConsumption=%%F
IF %RAMConsumption% LEQ %RAMLimit% && ping 8.8.8.8 -n 6 | FIND /I "out"
if errorlevel 0 (
TASKKILL /IM %procName%
) else (
echo iexplorer is working
)
goto start
windows-10
powershell
batch
Frankruss
sumber
sumber
Jawaban:
Ini akan menjadi Solusi PowerShell:
pertama, semuanya terlihat
iexplore
proses, lalu filter dalamwhere
semua proses yang memiliki Konsumsi RAM kurang dari 10MB. Untuk Setiap proses yang cocok denganwhere
, berhenti dan memulai kembali prosesSunting: sepertinya Anda ingin menjalankan ini dalam infinite loop, jika demikian, cukup bungkus skrip Anda dalam a
while
lingkaran seperti inijika tidak ada jalan:
sumber
if ($Path -and $Ping)
untukif ($Path -and !$Ping)