我想检查一下,如果在目录c:\Users\abc\Desktop.If中存在带有formate 310114的T日期文件夹,那么T日期文件夹是否存在,那么输出应该是Yes,否则是No。为此,我使用下面的查询
@echo off
setlocal EnableDelayedExpansion
for /f "tokens=2-4 delims=/ " %%a in ('date /T') do set year=%%c
for /f "tokens=2-4 delims=/ " %%a in ('date /T') do set month=%%a
for /f "tokens=2-4 delims=/ " %%a in ('date /T') do set day=%%b
Set year1=%year:~2,4%
set TODAY=%day%%month%%year1%
for /F "tokens=1" %%a IN ('Dir "C:\Users\abc\Desktop\*%TODAY%*" /-C/S/A:-D 2^>nul') Do Set y=!n2! & Set n2=%%a
echo %y%
if %y% gtr 0 ( echo yes) else (echo no)但它不工作,即使T日期的文件夹不在那里,输出也是4。另外,回声%y%给出值为音量。如果文件不在那里,为什么它提供Volumn作为输出,它不能提供0作为输出吗?
发布于 2014-01-31 15:24:20
为什么不使用if exist语句而不是for循环呢?
if exist "C:\Users\abc\Desktop\*%TODAY%*" ( echo yes ) else echo no发布于 2014-01-31 15:41:29
使用date /t得到的结果是不可靠的,并且会因区域和设置而异。
这段代码的前四行将在XP Pro和更高版本中为您提供可靠的YY DD MM YYYY HH Min Sec变量。
这也使用了unclemeat建议的测试。
@echo off
for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a"
set "YY=%dt:~2,2%" & set "YYYY=%dt:~0,4%" & set "MM=%dt:~4,2%" & set "DD=%dt:~6,2%"
set "HH=%dt:~8,2%" & set "Min=%dt:~10,2%" & set "Sec=%dt:~12,2%"
set "today=%DD%%MM%%YYYY%"
if exist "C:\Users\abc\Desktop\*%TODAY%*" (echo yes) else (echo no)
pausehttps://stackoverflow.com/questions/21474327
复制相似问题