【发布时间】:2016-11-30 20:37:36
【问题描述】:
使用批处理文件,我从用户那里获取日期。 现在,我想验证日期是否为 YYYY-MM-DD 格式。
我一直在搜索,但我在这里没有得到一些东西: 在某处找到了这个:
set /p startDate=Start Date [YYYY-MM-DD]:
if "%startDate:~2,1%%startDate:~5,1%" neq "--" goto invalidDate
for /f "tokens=2 delims==" %%I in ("%startDate%") do set datetime=%%I
ver > NUL
set /A month=1%MM%-100, day=1%DD%-100, year=1%YYYY%-10000, leap=year%%4
if errorlevel 1 goto invalidDate
if not defined dpm[%month%] goto invalidDate
if %leap% equ 0 set dpm[2]=29
if %day% gtr !dpm[%month%]! goto invalidDate
if %day% lss 1 goto invalidDate
echo Date correct: %YYYY%-%MM%-%DD%
这些是什么: 〜2, 1%%变量:~5, %%, 在 cmd 帮助中,我找到了单 % 但不是双 %%
还有,
set /A month=1%MM%-100, day=1%DD%-100, year=1%YYYY%-10000, leap=year%%4
这实际上在做什么。谁能逐个解释一下?
【问题讨论】:
-
我假设,因为代码现在错误,您更改了第一行以适应您的预期目标,但不知道它将如何影响其余部分。
-
你是对的@Compo 我试图改变它并理解但它超出了我的头脑:P
标签: validation batch-file cmd