批处理文件 - 目录是否存在 - 如果存在,则删除

批处理文件 - 目录是否存在 - 如果存在,则删除

遇到了 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 的复活节彩蛋吗?

相关内容