我正在尝试创建一个批处理文件,该文件将在处理其余命令之前检查目录是否存在。目录名称将始终相同,但随后会在末尾附加各种数字,有时还会附加字母。我想删除批处理文件末尾的目录,但是使用rmdir的变量而不检查以确保首先存在路径会产生问题(如在另一个目录中被删除)。下面的代码是我一直在使用的代码,但系统说这条路径不存在。
IF EXIST "C:\Today's Unique Folder*\nul" ( GOTO continue ) ELSE ( GOTO end)
此外,我尝试将此路径设置为变量,并将该变量与IF EXIST一起使用,但这也不起作用。我应该尝试除IF EXIST以外的命令吗?在此先感谢您的帮助。
答案 0 :(得分:2)
您可以使用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
答案 1 :(得分:0)
根据MS KBase,你大部分是正确的。我认为你的目录名有问题。以下工作对我使用有效的目录名称,并回显“是”。
尝试不使用目录名称旁边的双引号,因为Windowss在此上下文中不喜欢它们(strangley)
@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”,它将回显“否”