批处理文件仅适用于特定日期

时间:2013-11-23 22:28:18

标签: date batch-file

所以我想做一个只在圣诞节工作的程序。 如果你试图在圣诞节那天打开文件,它会说:例如圣诞快乐! 如果你想在其他任何一天打开它,它只会说:请稍后再来。

3 个答案:

答案 0 :(得分:0)

如果它需要是批处理,试试这个,我无法测试它。没有Windows。在java等中做它会更容易,也更加漂亮。

重要提示:您可能需要调整日期和月份的顺序,具体取决于系统的区域设置!也许甚至是delims。有一种方法可以从注册表中读取它。 在这里阅读:http://www.robvanderwoude.com/datetimentparse.php

@ECHO OFF
FOR /F "tokens=*" %%A IN ('DATE/T') DO FOR %%B IN (%%A) DO SET Today=%%B
FOR /F "tokens=1-3 delims=/-" %%A IN ("%Today%") DO (
    SET Day=%%A
    SET Month=%%B
    SET Year=%%C
)
if "%Day%;%Month%"=="24;12" GOTO :XMAS

echo Please come back later.
goto :eof

:XMAS
Merry christmas

答案 1 :(得分:0)

你可以这样做:

@echo off
set errorlevel=1
:: This is the base script for your example (only line that needs editing)
set /a day=25, month=12
if "%date:~4,2%:%date:~7,2%" EQU "%day%:%month%" GOTO :start
Echo Please Come Back Later
Exit/b 2
:: If Errorlevel=1 the program crashed, =2 its the wrong date, =0 The program ran fine

:start
:: Rest of Code
Echo MERRY CHRISTMAS

:EOF
Exit /b 0

这应该做你想要的+更多

莫纳。

答案 2 :(得分:0)

与目前为止的所有答案一样,这取决于您的%date%变量的格式 - 您可以修改搜索字词。

@echo off
echo %date%|find " 25/12/" >nul 
 if not errorlevel 1 (
   echo Merry Christmas
 ) else (
   echo Santa is asleep, try again tomorrow!
 )