|
lihkk
新手上路
积分 11
发帖 7
注册 2008-10-8
状态 离线
|
『楼 主』:
[求助][DOS]纯DOS下如何判断时间?
如题,如果当前时间晚于特定时间段即执行某一命令。
例:若当前系统时间晚于9:00p即令系统关机。
请较大虾如何实现?
多谢!
|
|
2008-11-28 12:06 |
|
|
wangff
初级用户
积分 134
发帖 54
注册 2008-11-19
状态 离线
|
『第
2 楼』:
@echo off
:loop
set t=%time: =0%
if "07:00"=="%t:~0,5%" echo %t%
ping -n 2 127.1>nul
goto loop 将echo %t%换成关机
|
|
2008-11-28 14:55 |
|
|
sea1112
初级用户
积分 131
发帖 119
注册 2007-6-12 来自 gz
状态 离线
|
『第
3 楼』:
Quote: | Originally posted by lihkk at 2008-11-28 12:06 PM:
如题,如果当前时间晚于特定时间段即执行某一命令。
例:若当前系统时间晚于9:00p即令系统关机。
请较大虾如何实现?
多谢! |
|
方法一:
at /?
shutdown /?
两命令结合完成
方法二:
不停看时间,时间一到就运行。
注:cpu 使用会好高的,不好。
@echo off
:s
if "%time:~0,5%"=="9:00" 关机命令
ping -n 2 127.1>nul
goto s
|
|
2008-11-28 14:56 |
|
|
yishanju
银牌会员
[b]看你妹啊[/b]
积分 1488
发帖 1357
注册 2006-5-20
状态 离线
|
『第
4 楼』:
人家楼主说的是纯DOS
|
有问题请发论坛或者自行搜索,再短消息问我的统统是SB |
|
2008-11-28 15:04 |
|
|
sea1112
初级用户
积分 131
发帖 119
注册 2007-6-12 来自 gz
状态 离线
|
『第
5 楼』:
Quote: | Originally posted by yishanju at 2008-11-28 03:04 PM:
人家楼主说的是纯DOS |
|
晕,这样这台机不就只做一件事情吗,“等关机电脑”
我想不是说真的纯DOS吧,纯DOS用不到等关机的命令吧。
[ Last edited by sea1112 on 2008-11-28 at 17:36 ]
|
|
2008-11-28 17:34 |
|
|
lihkk
新手上路
积分 11
发帖 7
注册 2008-10-8
状态 离线
|
|
2008-11-28 18:55 |
|
|
DOSforever
金牌会员
积分 4639
发帖 2239
注册 2005-1-30
状态 离线
|
|
2008-11-28 20:15 |
|
|
DOSforever
金牌会员
积分 4639
发帖 2239
注册 2005-1-30
状态 离线
|
|
2008-11-28 20:21 |
|
|
lianjiang2004
金牌会员
积分 3946
发帖 1884
注册 2006-1-20
状态 离线
|
|
2008-11-28 20:39 |
|
|
DOSforever
金牌会员
积分 4639
发帖 2239
注册 2005-1-30
状态 离线
|
|
2008-11-29 16:41 |
|
|
Climbing
铂金会员
网络独行侠
积分 6962
发帖 2753
注册 2003-4-16 来自 河北保定
状态 离线
|
『第
11 楼』:
DOS是一个单用户单任务的操作系统,基本上不存在并行运行这种事儿,象楼主这种要求,似乎只有两个途径:
1、专门运行一个程序来判断当前时间,符合要求就去执行相应的操作,例如关机。
2、编写专门的内存驻留程序,截取时钟中断处理程序,然后再进行时间判断,根本判断结果执行类似的操作。
|
偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
|
|
2008-11-30 13:57 |
|
|
goli2008
中级用户
积分 252
发帖 97
注册 2006-9-17
状态 离线
|
『第
12 楼』:
这个有什么难??
1、DOS下有个time命令,可取当前时间
2、写个BAT处理,定时如(10秒)判断一回时间,时间就关机,不就完了?
3、dos下的时钟、关机程序也很多,搜搜吧
|
|
2008-11-30 22:00 |
|
|
lianjiang2004
金牌会员
积分 3946
发帖 1884
注册 2006-1-20
状态 离线
|
『第
13 楼』:
Quote: | Originally posted by DOSforever at 2008-11-29 16:41:
假如某企业委托某软件公司开发 DOS 下的软件,但某软件公司理解成 Windows 命令行下执行的软件了,做了半天总算做出来了,但对不起,我不付钱,因为我已经说明了是 DOS 下的软件。
概念不清,审题不清,做再多的事也是无用功。 |
|
如此说来,中国dos联盟的论坛里,里面绝大多数话题都是名不副实的。因此,加上必要的强调,很有必要,呵呵。
再说了,签了合同,就要做打官司的准备。发帖子有几个是按合同要求的?呵呵。
|
Windows 一键还原
http://www.yjhy.com |
|
2008-12-4 09:55 |
|
|
DOSforever
金牌会员
积分 4639
发帖 2239
注册 2005-1-30
状态 离线
|
|
2008-12-4 12:39 |
|
|
winson4829
初级用户
积分 58
发帖 17
注册 2008-3-2
状态 离线
|
『第
15 楼』:
寫一個 TSR 程式, 常駐你的工作程式, TSR 的程式其實是很簡單的, 以 TCC 或 BC 程式碼如下:
此 TSR 省略了很多安全呼叫的程序碼(例如DTA and PSP的保留及回復,及inDosFlag 和 CriticalFlag 的判斷, 及中斷程序的不可重覆進入限定) , 不過在此應該不會有影响
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <dos.h>
#include <io.h>
#include <bios.h>
#include <fcntl.h>
static void interrupt (*OldInt8)(void);
static void interrupt NewInt8(WORD bp,WORD di,WORD si,WORD ds,WORD es,WORD dx,WORD cx,WORD bx,WORD ax);
static void interrupt NewInt8(WORD bp,WORD di,WORD si,WORD ds,WORD es,WORD dx,WORD cx,WORD bx,WORD ax)
{
if(OldInt8!=NULL) OldInt8();
// 你的判斷程序寫在這裡 ....
// 1. 取得時間
// 2. 時間到了嗎
// 3. 執行關機
}
int main(int argc, char *argv[])
{
struct SREGS sregs;
union REGS regs;
unsigned short u16;
// 本程式所需空間
u16 = *(unsigned far*)MK_FP(_psp-1, 3) + 16;
// 計時器中斷每秒會被呼叫 18.2 次
OldInt8 =getvect(0x08); // Store 0x08 VECTOR
setvect(0x08,NewInt8); // install new ISR
keep(0, u16); // 常駐在記憶體
return(1);
}
|
|
2008-12-6 00:48 |
|