Wie verwende ich IF ELSE- und IF NOT-Bedingungen in derselben Batchdatei?

Wie verwende ich IF ELSE- und IF NOT-Bedingungen in derselben Batchdatei?

Verwenden einer Stapelverarbeitung zum Sichern eines Verzeichnisses (Chrome). Ich verwende den nativen Task-Manager von Windows, um die Datei anzupingen und auszuführen (funktioniert hervorragend). Wenn ich jedoch ins Bett gehe (und vergesse, Chrome herunterzufahren), erhalte ich natürlich keine vollständige Sicherung.

Deshalb habe ich das hinzugefügt else if. Wenn ich Chrome jedoch herunterfahre, wird die Datei ausgeführt, ist aber ziemlich „schmutzig“. Wie kann ich ein „wenn nicht“ hinzufügen? Verschachtele ich es innerhalb des else if?

Folgendes führe ich aus. Es funktioniert wieder (unabhängig davon, ob Chrome heruntergefahren ist oder nicht), ist aber nicht „sauber“. Ich möchte es sauber machen, d. h. indem ein Fehler wie „Chrome existiert nicht“ angezeigt wird.

IF EXIST CHROME COMMAND (
    set drive=C:
    echo ### Killing Chrome Task
    taskkill  /F /IM chrome.exe /T
    PING 1.1.1.1 -n 1 -w 60000 >NUL
)
ELSE (
    :: variables 
    set drive=E:\BrowserBackups\Chrome
    set folder=%DATE:~4,2%_%DATE:~7,2%_%DATE:~10,4%_%RANDOM%
    set backupcmd=xcopy /C/E/H/I/R/K/Y
    echo ### Backing up directory...
    %backupcmd% "%USERPROFILE%\Local Settings\Application Data\Google\Chrome"
                "%drive%\%folder%"
)
pause

Ich bin nicht sicher, wo ich den Befehl „IF NOT EXISTS“ einfügen soll.

Antwort1

Strukturieren Sie Ihre Batchdatei wie folgt:

@echo off
tasklist /fi "imagename eq chrome.exe" 2>NUL | find /c /i "chrome.exe">NUL
if [%errorlevel%]==[0] (
    echo Chrome is running!
    echo Kill it and then backup settings.
) else (
    echo Chrome is not running!
    echo Can backup settings now.
)

verwandte Informationen