用DOS命令打造桌面动态时钟

经常看到别人的电脑桌面上的侧边栏上有个动态数字时钟,今天突发奇想,试着用DOS命令做了一个。
打开记事本,输入以下内容。
@echo off
title 动态时钟
color 1f
mode con cols=20 lines=8
echo.
echo 现在的时间是
echo.
echo %date%
echo %time:~0,-3%
ping -n 2 127.1>nul
cls
%0
将它另存为clock.bat。现在双击运行看看。


该程序可能没有很大的实用性,主要是希望电脑初学者能借此学习几个DOS命令。现在我来讲解一下关键部分代码的意思。
color用来定义前景色和背景色。
接下来的一行定义对话框的高度与宽度。
echo %date%用来显示当天的日期。
echo %time:~0,-3%用来显示当天的时间,但是这句语法与上句不一样,这是因为默认情况下会显示毫秒数,而我们不需要。所以用
"-3"去掉后面三位数。也就是去掉最后的一个冒号和两位毫秒数。":~0"表示前面的位数不舍去。整句的意思就是前面的时间保留,只去掉后面的冒号与毫秒数。
接下来我们用ping -n 2 127.1>nul来延时一秒。(实际上是一秒多,不到两秒)
最后用%0来运行自身。这就达到了动态时钟的目的。

 

http://www.cfanclub.net/article.php?itemid-38692-type-news.html

 

 

CODE SEGMENT ASSUME CS:CODE START: JMP NEXT BUFF DW 0 BUFF1 DW 2 DUP(0) MAIN: PUSHF CALL DWORD PTR CS:BUFF1 PUSH AX PUSH BX PUSH CX PUSH DX XOR BH,BH MOV AH,3 INT 10H ;读光标位置 MOV CS:BUFF,DX MOV AH,2 XOR BH,BH MOV DX,47H INT 10H ;置光标位置 MOV AH,2      INT 1AH ;读系统时间 PUSH DX PUSH CX POP BX PUSH BX CALL SHOW1 CALL SHOW2 POP BX XCHG BH,BL CALL SHOW1 CALL SHOW2 POP BX CALL SHOW1 MOV DX,CS:BUFF MOV AH,2 XOR BH,BH INT 10H ;置光标位置 POP DX POP CX POP BX POP AX IRET ;中断返回 ;以下为将系统时间转化为对应的ASCLL码显示的程序 SHOW1 PROC NEAR PUSH BX MOV CL,4 MOV AL,BH SHR AL,CL ADD AL,30H ;转换为ASCLL码 CALL SHOW CALL XJB POP BX MOV AL,BH AND AL,0FH ADD AL,30H CALL SHOW CALL XJB RET SHOW1 ENDP ;以下为显示”:“符号的程序 SHOW2 PROC NEAR MOV AL,‘:‘ CALL SHOW CALL XJB RET SHOW2 ENDP ;以下是对光标的处理的程序 XJB PROC NEAR PUSH AX PUSH BX PUSH CX PUSH DX MOV AH,3 MOV BH,0 INT 10H ; 读光标位置 INC DL MOV AH,2 INT 10H ; 置光标位置 POP DX POP CX POP BX POP AX RET XJB ENDP ;以下是将AL里的内容显示的程序 SHOW PROC NEAR PUSH AX PUSH BX PUSH CX MOV AH,09H MOV BX,2FH MOV CX,1 INT 10H ;在光标位置显示字及其属性 POP CX POP BX POP AX RET SHOW ENDP;以下为取中断,保存中断,设置新的这段类型的程序 NEXT: PUSH CS POP DS MOV AX,351CH ;取中断向量 INT 21H MOV BUFF1,BX ;保存偏移地址 MOV BX,ES ;保存段地址 MOV BUFF1+2,BX MOV DX,OFFSET MAIN MOV AL,1CH ; 中断类型放日AL MOV AH,25H ; 设置中断向量的功能调用 INT 21H ;改变中断向量 LEA DX,NEXT SUB DX,OFFSET START MOV CL,4 SHR DX,CL ADD DX,11H MOV AX,3100H       INT 21H CODE ENDS END START
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值