中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 怎麼用腳本&批處理實現改變系統時間的年,月,日,小時,分,
作者:
标题: 怎麼用腳本&批處理實現改變系統時間的年,月,日,小時,分, 上一主题 | 下一主题
piziliu2004
中级用户

过度热情


积分 321
发帖 139
注册 2006-3-21
状态 离线
『楼 主』:  怎麼用腳本&批處理實現改變系統時間的年,月,日,小時,分, 使用 LLM 解释/回答一下

怎麼用腳本&批處理實現改變系統時間的年,月,日,小時,分,秒.
如ctime.vbs +h 12表示將系統時間加12個小時.
(參數表: -y,+y,-m,+m,-d,+d,-h,+h,-mi,+mi,-s,+s)表示加減.年,月,日,小時,分,秒.
謝謝.!


2006-6-27 10:41
查看资料  发送邮件  发短消息  网志  OICQ (16750931)  编辑帖子  回复  引用回复
piziliu2004
中级用户

过度热情


积分 321
发帖 139
注册 2006-3-21
状态 离线
『第 2 楼』:   使用 LLM 解释/回答一下

麻煩各位高手幫忙想想辦法.! 考慮到如果用批處理的%date%,%time%計算需要考慮到很多零界點,月份的28天,29天,30天31天的進位.很麻煩.
但如果有windows 系統自帶類似的命令行工具的話就方便跟多了.
但小弟還不知道.


2006-6-27 13:55
查看资料  发送邮件  发短消息  网志  OICQ (16750931)  编辑帖子  回复  引用回复
piziliu2004
中级用户

过度热情


积分 321
发帖 139
注册 2006-3-21
状态 离线
『第 3 楼』:   使用 LLM 解释/回答一下

是我的問題太簡單了麼? 還是?. 怎麼沒有人說話呢?.艾.!!! 期待中.!


2006-6-28 08:49
查看资料  发送邮件  发短消息  网志  OICQ (16750931)  编辑帖子  回复  引用回复
bagpipe
银牌会员

DOS联盟捡破烂的


积分 1144
发帖 425
注册 2005-10-20
来自 北京
状态 离线
『第 4 楼』:   使用 LLM 解释/回答一下

这个现在只能修改分钟和小时,脑袋有点乱了,先试试效果如何,其他以后在说......测试环境WIN 2000

@echo off
setlocal
cls
echo.
echo 更改前时间 : %date% %time:~0,-3%
echo;
if "%1"=="" goto help
if "%2"=="" goto help
for /f "tokens=1,2 delims=:." %%a in ("%time%") do set /a a=%%a&set /a b=%%b
for /f "tokens=2,3,4 delims=- " %%c in ("%date%") do set /a c=%%c&set /a d=%%d&set /a e=%%e
if "%1"=="+h" (goto hh) else if "%1"=="+m" (goto mm) else goto help


:hh
set /a hh=%a%+%2
if %hh% GEQ 24 (goto demo1) else if %hh% LSS 24 goto demo2

:demo1
set /a oo=%e%+1&set /a hh=%hh%-24
echo %c%-%d%-%oo%|date>nul
echo %hh%:%b%|time >nul
echo 更改后时间 : %date% %time:~0,-3%
goto :eof


:demo2
echo %hh%:%b%|time >nul
echo 更改后时间 : %date% %time:~0,-3%
goto :eof


:mm
set /a kk=%b%+%2
if %kk% GEQ 60 (set /a a=%a%+1&set /a kk=%kk%-60&goto demo) else if %kk% LSS 60 goto demo
:demo
echo %a%:%kk%|time >nul
echo 更改后时间 : %date% %time:~0,-3%
goto :eof


:help
cls
echo 现在时间 : %date% %time:~0,-3%
echo -----------------------------------------------
echo 使用说明
echo -----------------------------------------------
echo 格式:+h 10 表示在系统时间上加10小时
echo 格式:+m 10 表示在系统时间上加10分钟
echo -----------------------------------------------

Last edited by bagpipe on 2006-6-28 at 12:03 ]


2006-6-28 11:04
查看资料  发送邮件  访问主页  发短消息  网志   编辑帖子  回复  引用回复
3742668
荣誉版主





积分 2013
发帖 718
注册 2006-2-18
状态 离线
『第 5 楼』:   使用 LLM 解释/回答一下

由于vbs提供了dateadd函数,所以这个问题用vbs+bat应该比较简单一些。

@echo off
echo Wscript.echo DateAdd(WScript.Arguments(0),WScript.Arguments(1),now) >tmp1.vbs
echo.
echo.
echo 参数表达式:
echo yyyy 年
echo m 月
echo d 日
echo h 小时
echo n 分钟
echo s 秒
echo 参数格式举例: yyyy 1
echo yyyy -1
set /p arg=输入参数:
if "%arg%" == "" goto :eof
call :dosomething %arg%
del tmp1.vbs
goto :eof

:dosomething
for /f "tokens=1,2" %%i in ('"cscript //nologo tmp1.vbs %arg%"') do echo %%i |date & echo %%j | time
goto :eof

时间关系,仅仅测试了修改日期部分,时间部分自行测试修改。


2006-6-28 14:35
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
piziliu2004
中级用户

过度热情


积分 321
发帖 139
注册 2006-3-21
状态 离线
『第 6 楼』:   使用 LLM 解释/回答一下

謝謝 兩位.!


2006-6-29 08:49
查看资料  发送邮件  发短消息  网志  OICQ (16750931)  编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: