Συνηθισμένα συμβάντα συστήματος ή / και περιβάλλοντος, όπως επανάληψη από την κατάσταση αναμονής ή απώλεια σύνδεσης δικτύου μπορεί να προκαλέσουν προβλήματα σε ορισμένες εφαρμογές που αναμένεται να είναι πάντα ενεργές και συνδεδεμένες. Επομένως, εάν έχετε μια συγκεκριμένη εφαρμογή που διακόπτεται ή πηγαίνει σε λειτουργία "δεν ανταποκρίνεται" κάπως συχνά και η επανεκκίνηση είναι η μόνη επιδιόρθωση για αυτό, έχουμε μια απλή επιδιόρθωση για εσάς με τη μορφή προσαρμόσιμης δέσμης ενεργειών δέσμης για να σκοτώσετε απλά την εφαρμογή επανεκκινήστε το.
Εκτός από την προφανή κατάσταση παραπάνω, αυτό το σενάριο μπορεί να χρησιμοποιηθεί για μια ποικιλία χρήσιμων εργασιών, όπως:
- Επανεκκινήστε εύκολα μια εφαρμογή κάνοντας διπλό κλικ ή χρησιμοποιώντας ένα πλήκτρο πρόσβασης.
- Επανεκκινήστε ένα πρόγραμμα μόνο όταν είναι κρεμασμένο ή δεν αποκρίνεται.
- Εκτελέστε ως προγραμματισμένη εργασία για να βεβαιωθείτε ότι εκτελείται μια εφαρμογή.
- Οπουδήποτε αλλού θέλετε να αυτοματοποιήσετε την επανεκκίνηση υπό όρους.
Η προσαρμογή του σεναρίου πρέπει να είναι αρκετά αυτονόητη από τα σχόλια, οπότε απλώς διαμορφώστε το σενάριο κατάλληλα και είστε έτοιμοι.
Το σενάριο
@ECHO OFF
Εφαρμογή επανεκκίνησης ECHO
ECHO Σενάριο: Jason Faulkner
ECHO SysadminGeek.com
ΗΧΩ.
ΗΧΩ.
SETLOCAL EnableExtensions
REM Εισαγάγετε τις πληροφορίες της εφαρμογής.
SET AppName = Όνομα εφαρμογής
SET ExeFile = FileToLaunch.exe
SET ExePath = C: PathToApplication
REM Επιλέξτε τις συνθήκες για να σκοτώσετε την εφαρμογή.
REM Τιμή 1 = Ναι, 0 = Όχι
SET KillIfRunning = 1
SET KillIfNotResponding = 1
SET KillIfUnknownStatus = 1
REM Καθορίστε πότε να ξεκινήσετε την εφαρμογή:
REM 1 = Ξεκινήστε μόνο εάν η διαδικασία είχε προηγουμένως σκοτωθεί.
REM 0 = Ξεκινήστε την εφαρμογή ανεξάρτητα.
ΡΥΘΜΙΣΗ StartOnlyIfKilled = 1
SET KillStatus = "% TEMP% KillStatus.tmp.txt"
SET Επιτυχία = 0
ECHO Σκοτώνοντας την υπάρχουσα παρουσία% AppName% ...
IF {%KillIfRunning%} == {1} CALL: CheckKillStatus "% ExeFile%" "RUNNING"
IF {%KillIfNotResponding%} == {1} ΚΛΗΣΗ: CheckKillStatus "% ExeFile%" "NOT RESPONDING"
IF {%KillIfUnknownStatus%} == {1} CALL: CheckKillStatus "% ExeFile%" "Άγνωστο"
ΗΧΩ.
IF {%StartOnlyIfKilled%} == {1} (
IF {%Success%} == {0} GOTO Τέλος
)
Επανεκκίνηση του ECHO% AppName% ...
ΕΝΑΡΞΗ "% ExeFile%" "% ExePath %% ExeFile%"
ΗΧΩ.
ΕΑΝ ΥΠΑΡΧΕΙ% KillStatus% DEL / F / Q% KillStatus%
ΤΕΛΙΚΟΣ
: CheckKillStatus
ECHO Killing με κατάσταση:% ~ 2
TASKKILL / FI "STATUS eq% ~ 2" / IM "% ~ 1" / F>% KillStatus%
SET / P KillResult = <% KillStatus%
FOR / F "tokens = 1, * delims =:" %% A IN ("% KillResult%") DO (
ECHO %% A: %% B
IF / I {%%A} == {SUCCESS} SET / A Επιτυχία =% Επιτυχία% + 1
)
:Τέλος
συμπέρασμα
Ενώ μπορείτε να βρείτε εφαρμογές εκεί έξω που εκτελούν βασικά την ίδια λειτουργία, χρησιμοποιώντας ένα απλό σενάριο όπως αυτό αποφεύγει την εκτέλεση "ακόμη άλλου προγράμματος" στο παρασκήνιο.