首页 | 程式人生 | 原创下载 | 技术文档 | 留言我们 | 关于我们

Windos XP中用批处理实现Linux下的日历程序Cal

作者: phanrider        2005-12-29

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 =====================





→返回←

红蜻蜓工作室版权所有
Copyright © 1999-2025 Reddragonfly & Studio All Rights Reserved.
如有任何问题及建议请留言红蜻蜓工作室