0

我需要一些帮助,伙计们。我目前正在做一个批处理程序,它要求输入MM-DD-YYYY格式的日期(破折号“-”包含在用户输入中)然后该日期将添加到文件夹中所有文本文件的文件名中。那部分对我来说很容易。我不知道该怎么做是在程序中进行验证,其中用户只能输入有效日期(无字母)并且仅限于 8 个字符(因为日期只有 8 个数字)。

我不知道这在批处理程序中是否可行,但我想做的另一件事是,当程序提示用户输入日期时,消息将显示如下:

`Enter Report Date: MM/DD/YYYY`

其中 MMDDYYYY 已经是可编辑的输入字段。斜线“/”默认显示但不可编辑;它仅用作用户输入的月、日和年的分隔符。这将消除在用户输入(在我当前的程序中)中包含破折号“-”的需要。

在用户输入日期并且程序验证格式正确后,输入的日期将被添加到存储在文件夹中的所有文本文件的文件名中(作为后缀)。但是要添加到文件名中的日期格式将是MM-DD-YYYY,这意味着斜杠“/”将不包括在内(因为它不允许在文件名中),并将替换为破折号“-”。感谢任何能提供帮助的人!

4

1 回答 1

2

如果您的日期有效,请检查该date功能:

@ECHO OFF &SETLOCAL
SET "sdate=%date%"

SET "ndate=07/22/2013"
SET "ndate=%ndate:/=-%"
ECHO %ndate%|DATE >NUL 2>&1 && ECHO "%ndate%" is a valid DATE || ECHO "%ndate%" is NOT a valid DATE
SET "ndate=17-22-2013"
SET "ndate=%ndate:/=-%"
ECHO %ndate%|DATE >NUL 2>&1 && ECHO "%ndate%" is a valid DATE || ECHO "%ndate%" is NOT a valid DATE
SET "date=%sdate%"
PAUSE

..输出是:

"07-22-2013" is a valid DATE
"17-22-2013" is NOT a valid DATE
于 2013-07-22T11:10:58.687 回答