2013-07-22 48 views
0

我需要一些幫助的人。我目前正在做一個批量程序,要求格式爲MM-DD-YYYY的日期(破折號「 - 」包含在用戶輸入中),那麼該日期將被添加到文件夾中所有文本文件的文件名中。那部分對我來說很簡單。我不知道如何做的是在程序中進行驗證,其中用戶只能被允許輸入有效日期(無字母)並且僅限於8個字符(因爲日期只有8個數字)。如何創建一個批處理程序,驗證輸入的日期格式是否正確

我不知道這是否可能在批處理程序,但我想這樣做的另一件事是,當程序提示的日期用戶,該消息將顯示如下所示:

`Enter Report Date: MM/DD/YYYY` 

其中MMDDYYYY已經是可編輯的輸入字段。斜槓「/」默認顯示,但不可編輯;它只會用作月份,日期和年份用戶輸入的分隔符。這將消除在用戶輸入中(在我當前的程序中)包括破折號「 - 」的需要。

在用戶輸入日期並且程序驗證了格式正確後,輸入的日期將被添加到存儲在文件夾中的所有文本文件(作爲後綴)的文件名中。但是要添加到文件名中的日期格式將爲MM-DD-YYYY,這意味着不會包含斜線「/」(因爲它不允許在文件名中),並且將被替換爲破折號「 - 」。感謝任何能提供幫助的人!

回答

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 

..output是:

"07-22-2013" is a valid DATE 
"17-22-2013" is NOT a valid DATE 
+0

感謝。該程序很好,但它並不要求用戶輸入日期並對其進行進一步的驗證。例如,如果用戶將輸入2013年2月29日,則該程序應顯示一條消息,指出這是一個無效的日期,因爲2013年不是閏年。此外,如果用戶將輸入字母字符,程序不應該允許它,只接受數字值。 –

+0

這不幸的是不是Java角:( – Endoro

相關問題