Como usar as condições IF ELSE e IF NOT no mesmo arquivo de lote?

0

Usando um lote Para fazer backup de um diretório (Chrome). Eu estou usando o nativo do Windows Schedule Task Manager para ping, execute o arquivo (funcionando muito bem). No entanto, se eu for dormir (esquecendo de desligar o Chrome), naturalmente não recebo um backup completo.

Portanto, adicionei o else if , mas se eu desligar o Chrome, o arquivo será executado, mas será "Dirty". Como posso adicionar um "se não"? Aninho-o dentro do else if ?

Veja o que estou executando, mais uma vez ele funciona (independentemente de o Chrome estar desativado ou não), mas não "limpo". Gostaria de deixar isso claro, ou seja, mostrando um erro como "O Chrome não existe".

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

Não tenho certeza onde colocar o comando "SE NÃO EXISTE".

    
por Router 01.01.2013 / 21:26

1 resposta

1

Estruture seu arquivo em lote da seguinte forma:

@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.
)
    
por 01.01.2013 / 22:02