windows - 批处理脚本 if else 命令

标签 windows batch-file cmd command-prompt

我正在尝试制作一个简单的批处理脚本来删除/清零闪存驱动器并重新格式化它。它是为其他人准备的,所以我试图通过阻止格式化为 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
)

关于windows - 批处理脚本 if else 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15798930/

相关文章:

java - Windows 上的动物园管理员

windows - 批处理脚本 : how to check for admin rights

windows - 批处理 : parameter with both expansion symbols

batch-file - 从文本文件中回显第 n 行,其中 'n' 是命令行参数

windows - 在 Windows 7 上安装 curl 后缺少 libcurl-4.dll

windows - Windows 上的 Ack.vim "No such file or directory"错误

windows:用于启动程序的命令行

java - 套接字连接在独立 "main(..)"类中运行良好,但在 servlet 环境中超时

c# - .NET FileInfo.LastWriteTime & FileInfo.LastAccessTime 是错误的

c++ - 在应用程序启动时设置控制台窗口特定大小