我正在尝试制作一个简单的批处理脚本来擦除/清零闪存驱动器并重新格式化它.它适用于其他人,所以我试图通过阻止格式化为C:,D:等来使其相对安全.
我正在寻找一个我可以使用的IF ELSE类型命令,成为一个错误.
这是我拥有ATM的(主要部分)
:again echo. cls echo. echo Please select the drive letter for the flash echo drive you wish to erase echo. echo **** DO NOT SELECT C: OR D: **** echo. echo. echo *** Enter letter (no colon) ONLY e.g. "E" *** echo. set /p answer= cls echo. echo. echo. if /i "%answer:~,1%" EQU "e" format E: /x /fs:FAT32 /v:FORENSICS /p:2 if /i "%answer:~,1%" EQU "f" format F: /x /fs:FAT32 /v:FORENSICS /p:2 if /i "%answer:~,1%" EQU "g" format G: /x /fs:FAT32 /v:FORENSICS /p:2 if /i "%answer:~,1%" EQU "h" format H: /x /fs:FAT32 /v:FORENSICS /p:2 if /i "%answer:~,1%" NOT exist goto again && echo Please provide a valid drive letter for flash drive echo.
现在我知道了
if /i "%answer:~,1%" NOT exist goto again && echo Please provide a valid drive letter for flash drive
是无效的语法,但我可以使用什么来实现相同的目标?我知道有一种更有效的方法可以做到这一点(例如,不是为可能的驱动器字母定义4个变量,而是放置一个监听用户输入的变量,如果存在则接受它.)
这是我第一次涉足批处理脚本(以及一般的脚本),我正在即时学习,所以你可以做到的“笨”越好.
提前致谢.
试试这个:
echo.%answer:~,1% | findstr /r /i "[e-h]" if %errorlevel% equ 0 ( format %answer:~,1%: /x /fs:FAT32 /v:FORENSICS /p:2 ) else ( echo Please provide a valid drive letter for flash drive. goto again )