variables - 如何检查目录名称中是否存在带有通配符的目录?

标签 variables if-statement batch-file filenames directory

我正在尝试创建一个批处理文件,该文件将在处理其余命令之前检查目录是否存在。目录名称将始终以相同的开头,但随后会附加各种数字,有时还会附加字母。我想删除批处理文件末尾的目录,但是将变量与 rmdir 一起使用而不检查以确保路径首先存在会产生问题(如另一个目录被删除)。下面的代码是我一直在使用的代码,但系统说这条路径不存在。

IF EXIST "C:\Today's Unique Folder*\nul" ( GOTO continue ) ELSE ( GOTO end)

此外,我尝试将此路径设置为变量并将该变量与 IF EXIST 一起使用,但这也不起作用。除了 IF EXIST 之外,还有其他命令可以尝试吗?预先感谢您的帮助。

最佳答案

您可以使用 FOR/D参数以使用通配符搜索文件夹名称。

请注意,如果发现多个文件夹名称的开头部分相同,则 RESULT将最终成为最后一个文件夹。

SET RESULT=---

FOR /D %%d IN ("C:\Today's Unique Folder*") DO (
  SET RESULT=%%d
)

IF EXIST "%RESULT%" (GOTO WINDIR) ELSE (GOTO NOWINDIR)

:WINDIR
  ECHO Yes
  GOTO END

:NOWINDIR
  ECHO No

:END

关于variables - 如何检查目录名称中是否存在带有通配符的目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11938566/

相关文章:

java - 长时间尝试语句

c - 循环到开头

file - 将文件 move 到另一个目录的批处理文件

batch-file - 如何通过批处理文件从文本文件中删除不需要的行?

C++:返回类变量

jquery - 使用变量定义json对象名称

python - 我正在尝试做一个 if 语句,输入为 21,结果为 Time 打印出来

windows - 批处理文件。如果语句?

看不懂这个if语句

java - 如何从自定义 Java 桌面应用程序启动 NXP 产品 JCOPShell (jcshell.bat)