File Batch Yang Membuat File Batch Lainnya Berjalan

Oct 09 2020

Saya menjalankan 3 file bat di komputer saya setiap saat 24/7 untuk bisnis yang saya miliki. Sesekali mereka akan tutup karena internet saya terputus karena area tempat saya tinggal dan mereka membutuhkan internet untuk dijalankan.

Apakah ada cara agar saya dapat memiliki file batch yang membuka 3 file lainnya dan memeriksa untuk memastikan apakah ada yang ditutup, jika demikian, itu akan membukanya lagi? Mungkin minta dia melakukan pemeriksaan setiap x jumlah menit

Nama file batch adalah:

vfile1.bat

vfile2.bat

vfile3.bat

Jadi pada dasarnya saya ingin membuka file seperti group.bat dan itu akan membuka 3 dalam daftar di atas dan membukanya kembali jika ditutup.

Saya mencoba mencari solusi ini secara online tetapi saya tidak tahu harus mencari apa.

Jawaban

RicardoBohner Oct 09 2020 at 16:43

Misalkan file batch Anda bernama Batch01.bat, Batch02.bat dan Batch03.bat dan memiliki judul Batch01, Batch02 dan Batch03. Anda dapat mengatur ini dalam Batch dengan contoh: Judul Batch01

Bisa terlihat seperti ini:

@echo off
Title Keep Running Batchs
set Batch01Path=%userprofile%\desktop\Batch01.bat
set Batch02Path=%userprofile%\desktop\Batch02.bat
set Batch03Path=%userprofile%\desktop\Batch03.bat

:Restart
cls
echo.
tasklist /fi "windowtitle eq Batch01" /v /fo csv |find /i "Batch01" > Nul
if "%errorlevel%"=="0" (Echo  Batch01.bat Running OK) else (Echo  Batch01.bat Closed ...Restarting& start "" "%Batch01Path%") 
tasklist /fi "windowtitle eq  Batch02" /v /fo csv |find /i "Batch02" > Nul
if "%errorlevel%"=="0" (Echo  Batch02.bat Running OK) else (Echo  Batch02.bat Closed ...Restarting& start "" "%Batch02Path%")
tasklist /fi "windowtitle eq Batch03" /v /fo csv |find /i "Batch03" > Nul
if "%errorlevel%"=="0" (Echo  Batch03.bat Running OK) else (Echo  Batch03.bat Closed ...Restarting& start "" "%Batch03Path%")
timeout /t 5 >nul
goto :Restart

ItWasn'tMe Oct 09 2020 at 15:06

1. Edit Anda file.batdan tambahkan nama ke judul setiap file:

title <nul && title vfile1.bat 
title <nul && title vfile2.bat 
title <nul && title vfile3.bat

rem :: Or add this line to each bat file :: 
title <nul && title %~n0

2. Gunakan forloop, :labeldan operatoruntuk memeriksa apakah perlu memulai ulang masing-masing

@echo off  

title <nul && title %~n0

:loop
for %%i in ("vfile1","vfile2","vfile3")do (
     %__AppDir__%tasklist.exe /FI "windowtitle eq %%~i" >nul || start "" /b "%%i.bat"
    )
  
%__AppDir__%timeout.exe /t 6000 & goto :loop

Baca lebih lajut:

  • Untuk

  • Mulailah

  • Judul

  • Daftar tugas

  • Waktu habis

  • Goto: Label

  • Eksekusi Bersyarat || && ...