если диск не подключен, после ввода новой буквы он не будет работать
Вам необходимо enabledelayedexpansion
:
добавлять
setlocal enabledelayedexpansion
в начале вашего командного файла и заменить %drive%
на!drive!
Исправленный пакетный файл:
@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
Дальнейшее чтение
- Индекс AZ командной строки Windows CMD - Отличный справочник по всем вопросам, связанным с командной строкой Windows.
- enabledelayedexpansion - отложенное расширение приведет к тому, что переменные будут расширяться во время выполнения, а не во время анализа.