4

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

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

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

4

2 回答 2

4

您可以使用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
于 2012-08-13T17:59:27.047 回答
0

根据MS KBase,您基本上是对的。我认为您的目录名称有问题。以下适用于我使用有效的目录名称,它会回显“是”。

尝试不要在目录名称周围使用双引号,因为 Windowss 在这种情况下不喜欢它们(stranley)

@echo off

IF EXIST C:\Program Files\NUL ( GOTO WINDIR ) ELSE ( GOTO NOWINDIR )

:WINDIR
echo Yes
goto END

:NOWINDIR
echo No

:END

将“C:\Program Files”更改为不存在的“C:\Foo”之类的东西,它会回显“No”

于 2012-08-13T17:02:02.183 回答