Windos XP中用批处理实现Linux下的日历程序Cal
Linux系统下有个小巧的日历程序Cal,一日突然心血来潮,用批处理仿制了个WINDOWS XP下的Cal,该程序纯粹是为了好玩,没有什么技术性,其中怎么在批处理中把计算结果导入文件时,用了一个管道与More命令,而不是命令行下的直接用大于号把结果导入文件,把所有代码存成Cal.bat文件,放入%SystemRoot%目录下,就可以直接在命令行中引用
@REM ==================================== @REM Cal.bat cabinet calendar @REM Write by phanrider @REM 2005.12.29 @REM http://www.reddragonfly.org @REM ====================================
@echo off setlocal
set lmj_file=date_tmp.$$0 set zhl_file=date_tmp.$$1 set tmp_file=tmp.$$$ set date= - set date1= 1 set date2= 2 set date3= 3 set date4= 4 set date5= 5 set date6= 6 set date7= 7 set date8= 8 set date9= 9 set date10=10 set date11=11 set date12=12 set date13=13 set date14=14 set date15=15 set date16=16 set date17=17 set date18=18 set date19=19 set date20=20 set date21=21 set date22=22 set date23=23 set date24=24 set date25=25 set date26=26 set date27=27 set date28=28 set date29=29 set date30=30 set date31=31
date /t > %lmj_file% for /f "tokens=1,2,3* delims=-" %%a in (%lmj_file%) do ( @set my_year=%%a @set my_month=%%b @set my_date=%%c )
echo %my_date% > %zhl_file% for /f "tokens=1,2* delims= " %%A in (%zhl_file%) do ( @set my_date=%%A @set my_week=%%B )
if %my_date%==08 set my_date=8 if %my_date%==09 set my_date=9
if %my_week%==星期一 set my_week=1 if %my_week%==星期二 set my_week=2 if %my_week%==星期三 set my_week=3 if %my_week%==星期四 set my_week=4 if %my_week%==星期五 set my_week=5 if %my_week%==星期六 set my_week=6 if %my_week%==星期日 set my_week=7
set /a %my_date% %% 7 | more > %tmp_file% for /f "tokens=1* delims=" %%C in (%tmp_file%) do @set lmj_num=%%C
if %my_week% lss %lmj_num% @set /a my_week=%my_week% + 7 | more > %tmp_file% && for /f "tokens=1* delims=" %%D in (%tmp_file%) do @set my_week=%%D
set /a %my_week% - %lmj_num% | more > %tmp_file% && for /f "tokens=1* delims=" %%E in (%tmp_file%) do @set lmj_num=%%E
set /a %my_year% %% 4 | more > %tmp_file% && for /f "tokens=1* delims=" %%F in (%tmp_file%) do @set num=%%F
if %my_month%==02 ( if %num%==0 ( set date30= - set date31= - ) else ( set date29= - set date30= - set date31= - ) )
if %my_month%==04 set date31= - if %my_month%==06 set date31= - if %my_month%==09 set date31= - if %my_month%==11 set date31= -
if %my_month%==01 set my_month= 一月 if %my_month%==02 set my_month= 二月 if %my_month%==03 set my_month= 三月 if %my_month%==04 set my_month= 四月 if %my_month%==05 set my_month= 五月 if %my_month%==06 set my_month= 六月 if %my_month%==07 set my_month= 七月 if %my_month%==08 set my_month= 八月 if %my_month%==09 set my_month= 九月 if %my_month%==10 set my_month= 十月 if %my_month%==11 set my_month= 十一月 if %my_month%==12 set my_month= 十二月
echo %my_month% %my_year% echo 日 一 二 三 四 五 六 echo Su Mo Tu We Th Fr Sa if %lmj_num%==1 ( echo %date% %date% %date1% %date2% %date3% %date4% %date5% echo %date6% %date7% %date8% %date9% %date10% %date11% %date12% echo %date13% %date14% %date15% %date16% %date17% %date18% %date19% echo %date20% %date21% %date22% %date23% %date24% %date25% %date26% echo %date27% %date28% %date29% %date30% %date31% ) if %lmj_num%==2 ( echo %date% %date% %date% %date1% %date2% %date3% %date4% echo %date5% %date6% %date7% %date8% %date9% %date10% %date11% echo %date12% %date13% %date14% %date15% %date16% %date17% %date18% echo %date19% %date20% %date21% %date22% %date23% %date24% %date25% echo %date26% %date27% %date28% %date29% %date30% %date31% ) if %lmj_num%==3 ( echo %date% %date% %date% %date% %date1% %date2% %date3% echo %date4% %date5% %date6% %date7% %date8% %date9% %date10% echo %date11% %date12% %date13% %date14% %date15% %date16% %date17% echo %date18% %date19% %date20% %date21% %date22% %date23% %date24% echo %date25% %date26% %date27% %date28% %date29% %date30% %date31% ) if %lmj_num%==4 ( echo %date% %date% %date% %date% %date% %date1% %date2% echo %date3% %date4% %date5% %date6% %date7% %date8% %date9% echo %date10% %date11% %date12% %date13% %date14% %date15% %date16% echo %date17% %date18% %date19% %date20% %date21% %date22% %date23% echo %date24% %date25% %date26% %date27% %date28% %date29% %date30% echo %date31% ) if %lmj_num%==5 ( echo %date% %date% %date% %date% %date% %date% %date1% echo %date2% %date3% %date4% %date5% %date6% %date7% %date8% echo %date9% %date10% %date11% %date12% %date13% %date14% %date15% echo %date16% %date17% %date18% %date19% %date20% %date21% %date22% echo %date23% %date24% %date25% %date26% %date27% %date28% %date29% echo %date30% %date31% ) if %lmj_num%==6 ( echo %date1% %date2% %date3% %date4% %date5% %date6% %date7% echo %date8% %date9% %date10% %date11% %date12% %date13% %date14% echo %date15% %date16% %date17% %date18% %date19% %date20% %date21% echo %date22% %date23% %date24% %date25% %date26% %date27% %date28% echo %date29% %date30% %date31% ) if %lmj_num%==0 ( echo %date% %date1% %date2% %date3% %date4% %date5% %date6% echo %date7% %date8% %date9% %date10% %date11% %date12% %date13% echo %date14% %date15% %date16% %date17% %date18% %date19% %date20% echo %date21% %date22% %date23% %date24% %date25% %date26% %date27% echo %date28% %date29% %date30% %date31% ) echo.
REM ==================================== REM 最后的清扫工作 REM ====================================
erase %lmj_file% 1>nul 2>&1 erase %zhl_file% 1>nul 2>&1 erase %tmp_file% 1>nul 2>&1
endlocal
REM ===================== END =====================
|
|