遇到了 if-else 语句/错误处理问题。一直想让它工作,但似乎做不到。我希望让用户输入客户端 ID,然后删除与该客户端关联的目录(如果存在)。
代码:
@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
因此,用户将输入 956862(例如)。然后,如果 Images\DMS Scanned Clients\956862 上的 \Images\Public 目录存在,则会将其删除,否则会显示消息,指出它不存在。
谢谢
答案1
@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
然而在编程中,我们先测试,而不是先测试再执行。测试需要大量的系统资源。因此,先测试再执行需要两次昂贵的磁盘访问。执行并测试结果(即返回的数字 0)仅需要一次磁盘访问和对数字的快速测试。
rd /s c:\somefolder && Echo Folder deleted || Echo Folder didn't exist
&&
意思||
是如果errorlevel
为零或不为零,则执行此操作。这比If errorlevel 0 if not errorlevel 1 echo errorlevel is 0
多行更容易。请参阅我的帖子在 cmd.exe 中输入 %^ 是 Windows 的复活节彩蛋吗?