2014-01-31 22 views
0

我要檢查,如果T與甲日310114夾存在於目錄C:\用戶\ ABC \ Desktop.If牛逼日的文件夾存在,則輸出應是有別的號爲我現在用下面的查詢檢驗T日期文件夾

 @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) 

但它不能正常工作,即使牛逼日目錄不存在輸出作爲正在添加4 也呼應%Y%對價爲卷。如果文件不存在,爲什麼它將Volumn作爲輸出,它不能給出0作爲輸出?

回答

0

而不是你的for循環,爲什麼不直接使用一個if exist聲明?

if exist "C:\Users\abc\Desktop\*%TODAY%*" (echo yes) else echo no 
0

使用日期/ t給出的結果是不可靠的,並且按地區和設置而改變。

這段代碼的前四行會給你在XP專業版和更高的可靠性YY MM DD YYYY HH分秒變量。

這還使用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) 

pause