Arquivo em lote - O diretório existe? Se sim, exclua

0

Ter um problema com instruções if-else / manipulação de erros. Tentando fazer isso funcionar, não consigo fazer isso. O que eu quero fazer é ter o ID do cliente de entrada do usuário e, em seguida, excluir o diretório associado ao cliente, se existir.

Código:

@echo off
set /p id=Enter ID:
rd /s /q "\Images\Public on Images\DMS Scanned Clients\%id%"
echo \Images\Public on Images\DMS Scanned Clients\%id%
pause

Assim, o usuário digitaria 956862, por exemplo. Então, se o diretório em \ Images \ Public em Images \ DMS Scanned Clients \ 956862 existir, ele será removido; caso contrário, a mensagem será exibida informando que ele não existe.

Obrigado

    
por Zach 07.08.2015 / 14:59

1 resposta

0

@Echo off
pushd %1 >nul 2>&1  
If errorlevel 0 if not errorlevel 1 Echo %~nx1 is a folder
If errorlevel 1 Echo %~nx1 is not a folder
Popd

If /i "%cmdcmdline:~0,6%"=="cmd /c" pause

No entanto, na programação, testamos e não testamos. O teste requer muitos recursos do sistema. Portanto, para testar, então, são necessários dois acessos de disco caros. Fazer e testar o resultado (ou seja, o número retornado 0) é apenas um acesso ao disco e um teste rápido de um número.

rd /s c:\somefolder && Echo Folder deleted || Echo Folder didn't exist

&& e || significam se if errorlevel é zero ou não zero. É mais fácil do que If errorlevel 0 if not errorlevel 1 echo errorlevel is 0 em várias linhas. Veja meu post aqui Está digitando% ^ em cmd .exe um ovo de páscoa do Windows?

    
por 09.08.2015 / 14:58

Tags