quando a unidade não está montada, quando você insere uma nova letra de unidade, ela não funciona
Você precisa enabledelayedexpansion
:
Adicionar
setlocal enabledelayedexpansion
para o início do seu arquivo de lote e substitua %drive%
por !drive!
Arquivo em lote corrigido:
@echo off
setlocal enabledelayedexpansion
set folder="t:\"
IF EXIST "%folder%" (
cd /d %folder%
for /F "delims=" %%i in ('dir /b') do (
rmdir "%%i" /s/q || del "%%i" /s/q
)
) ELSE (
@echo this drive is not mounted, please enter a new one.
set /p drive=
cd /d !drive!
pause
for /F "delims=" %%i in ('dir /b') do (
rmdir "%%i" /s/q || del "%%i" /s/q
)
)
@pause
endlocal
Leitura Adicional
- Um índice A-Z da linha de comando do Windows CMD - Uma excelente referência para todas as coisas relacionadas à linha do Windows cmd.
- enabledelayedexpansion - Expansão com atraso fará com que as variáveis sejam expandidas em tempo de execução e não no tempo de análise.