批处理脚本 - 如何将当前日期与内部文本文件日期进行比较

时间:2016-09-16 14:10:29

标签: batch-file batch-processing

我有一个包含日期的文本文件,现在我想将这些日期与当前日期进行比较。如果日期匹配我需要执行其他明智的操作,它会打印else语句。

我尝试了以下代码但代码我没有得到。 变量包含所有值,但它采用最后一个值进行比较。

代码:

for /f  %%i in (' MyFile.txt') do set ren=%%i
echo %ren%
if  %ren% == %date% goto same

goto notsame

:same
echo Dates the same, do some code here
exit /b

:notsame
echo Dates NOT the same, do some code here
exit /b

文本文件:

06/04/2017
16/09/2016
04/05/2016

2 个答案:

答案 0 :(得分:0)

如果您的PC上的echo %date:~-10%输出的格式与Myfile.txt的内容格式相同,那么:

for /f %%i in (MyFile.txt) do if "%%i" equ "%date:~-10%" (call :same) else (call :notsame)
pause
exit /b
:same
echo Dates the same, do some code here
goto :eof
:notsame
echo Dates NOT the same, do some code here
goto :eof

答案 1 :(得分:0)

@ECHO OFF
SETLOCAL
SET "sourcedir=U:\sourcedir"
SET "filename1=%sourcedir%\q39533625.txt"
findstr /x "%date%" "%filename1%">nul

IF ERRORLEVEL 1 (
 ECHO DATE %DATE% NOT found
) ELSE (
 ECHO DATE found:%date%
)

GOTO :EOF

您需要更改sourcedirfilename1的设置以适合您的具体情况。

我使用了一个名为q39533625.txt的文件,其中包含我的测试数据。

findstr /x在文件中找到当前日期字符串,如果找到则将errorlevel设置为0,否则设置为非零。 /x表示“完全匹配”。 >nul会阻止findstr的报告到屏幕。