标题: [系统相关] 大神们,帮忙写个批处理更改系统时间 [打印本页]
作者: tolnba122 时间: 2015-11-6 10:57 标题: 大神们,帮忙写个批处理更改系统时间
本帖最后由 tolnba122 于 2015-11-6 10:59 编辑
我有一个服务器系统,客户端时间要和此系统时间同步,此电脑时间不能出现星期日。
我想的是每到星期日时,用命令加计划任务把电脑日期改为星期六或者开机启动运行批处理执行(比如:如8月10日星期天修改成8月9日星期六)。如果不是星期天就不执行该程序,按正常日期显示
作者: 707093864 时间: 2015-11-6 13:10
这个不是直接用at 就解决了吗
作者: tolnba122 时间: 2015-11-6 16:04
请楼上赐教,谢谢
作者: ads350668398 时间: 2015-11-7 21:33
echo off
:time
ping -n 1 -w "60000" 127 >nul
date 2015-08-08
time 08:08:08.00
goto time
60000指一分钟 即60秒
看看这个能不能帮到你
作者: ads350668398 时间: 2015-11-7 21:36
你要是 有空 看看我的求助 帖子在 互相 帮忙啊 谢谢
作者: 依山居 时间: 2015-11-9 10:57
这个有挑战。怎么没人来试试。
作者: yiwuyun 时间: 2015-11-12 23:10
这个应该首先要同步网络时间才行,如果网络时间是星期天,把本机改成星期一,如果是其它时间,直接同步网络时间。如果没有网络参照,本机时间怎么好确定,难道始终定位在星期六。
作者: pcl_test 时间: 2015-11-12 23:34
六 (零点触发,改日期,写注册表)六(日)(零点触发,读注册表,改日期,删注册表)一
作者: 依山居 时间: 2015-11-13 03:35
回复 8# pcl_test
我想到的方法是两个任务计划。第一个任务计划减时间并修改,关掉时间同步服务。删掉第一个任务计划添加第二个任务计划。第二个任务计划修改时间恢复到周一,恢复时间同步服务。添加第一个任务计划,删除第二个任务计划。
作者: yiwuyun 时间: 2015-11-13 07:23
- if ($true){}# == ($true){}# goto ___yiwuyun
- <#BeginBatOperation#
- :___yiwuyun
- @echo off&setlocal&cls
- (echo $yiwuyun_fileName="%~f0"&echo $strPath="%~dp0"&type "%~f0")|powershell -command -
- exit/b 0
- #EndBatOperation#>
-
- <#StartPowerShell#>
- $BoolTime=$false;
- while($true){
- if($(Get-Date).DayOfWeek.ToInt32($Null) -eq 0){
- if($BoolTime){
- Set-Date $($(Get-Date)+"12:00:00"+"12:00:00");
- $BoolTime=$false;
- }else{
- Set-Date $($(Get-Date)+"-12:00:00"+"-12:00:00");
- $BoolTime=$true;
- }
- }
- }
-
- <#EndPowerShell#>
复制代码
试试这个
作者: tolnba122 时间: 2015-11-13 08:34
本帖最后由 tolnba122 于 2015-11-13 08:36 编辑
回复 10# yiwuyun
谢谢 保存VBS格式吗 提示错误 还是别的格式
作者: 依山居 时间: 2015-11-13 08:44
回复 11# tolnba122
bat
作者: terse 时间: 2015-11-13 10:47
在文件自身放个标志吧
作者: 依山居 时间: 2015-11-13 14:14
本帖最后由 依山居 于 2015-11-13 14:20 编辑
- goto code
- ==================================================
- 这里是注释区,随便浪吧
-
- 系统日期自动从周6改为周日 http://www.bathome.net/thread-38000-1-1.html
-
- 依山居 8:56 2015/11/10
-
- 使用datex 命令工具计算日期 http://batch-cn.qiniudn.com/tool/DateX.exe
- HAT大神文章 Windows 2008任务计划执行bat脚本失败返回0x1 http://blog.chinaunix.net/uid-17176286-id-5156940.html
-
- 双击运行会自动建立任务
- ===================================================
- :code
- @echo off
- title 全自动定时修改日期为周6周1
-
- ::计划任务名
- set tn=whosyourdaddy
-
-
- ::计划运行时间
- set st=01:01:01
- set tr=%0
- set mo=1
- ::切换当前目录为脚本所在路径
- cd /d %~dp0
-
- ::脚本目录下需要有datex.exe
- if not exist %~dp0\datex.exe msg %username% 需要datex才能干活&goto :eof
- if not exist ver.txt echo -->%~dp0\ver.txt
- if "%1"=="task" goto :task
-
-
- ::判断计划是否已经添加
- chcp 437
- schtasks /query|find "%tn%"||goto crtask
- goto :eof
-
- :crtask
- ::建立任务
- schtasks /create /ru "system" /sc weekly /mo %mo% /d sun /st %st% /tn "%tn%" /tr "%0 task"
- goto :eof
-
- :task
- set /p ver=<%~dp0\ver.txt
- ::每周日0点的开始时候,日期减1变成周6
- if %ver%==-- (datex -f yyyy/mm/dd -o -1|date
- echo ++>%~dp0\ver.txt
- net stop W32Time
- sc config W32Time start= disable
-
- )
- ::再次运行时,日期加1,恢复正常日期
- if %ver%==++ (datex -f yyyy/mm/dd -o 1|date
- echo -->%~dp0\ver.txt
- sc config W32Time start= auto
- net start W32Time
- )
- ::听从HAT的教导,任务计划要使用exit /b 0退出,任务状态才显示为操作完成。
- exit /b 0
复制代码
作者: terse 时间: 2015-11-13 16:18
- ::0
- @echo off
- for /f "eol=Etokens=5-7delims=. " %%i in ('echo.^|command /c date') do set /ay=%%i,m=1%%j-100,d=1%%k-100
- set /a "m=(m+9)%%12+4,y-=m/14,JD=1461*y/4+153*M/5+d,w=jd%%7,jdx=jd+15"
- set /p flag=<%0
- set flag=%flag::=%
- if %w% equ 2 (
- if %flag% equ 0 (
- set /a "JD-=1,flag=1
- ) else set /a "JD+=1,flag=0"
- set/a "ys=(JD*4-489)/1461,d=jd-1461*y/4,m=d*100/3061,d-=153*m/5,y+=m/14,m-=m/14*12+1"
- )
- if defined ys (
- echo %ys%.%m%.%d%|command /c date
- for /f "delims=" %%i in ('type %0') do (
- set "str=%%i"
- setlocal enabledelayedexpansion
- if defined s (
- >>%0 echo;!str!
- ) else >%0 echo;::%flag%
- for %%j in (s) do endlocal&set s=0
- )
- )
- pause
复制代码
作者: 依山居 时间: 2015-11-13 16:41
等楼上不注意的时候我再来偷楼上的代码。
作者: 依山居 时间: 2015-11-15 18:34
- ##--##
- """
- python自动修改系统日期跳过周日
- 题目来源 http://www.bathome.net/thread-38000-1-1.html
- ~~玩玩中文变量名
- 本文件首行必须是状态标志不能删除,状态为--表示执行任务计划调用本程序时日期减1
- 依山居 15:53 2015/11/15
-
- """
- import os
- import sys
- import datetime
-
- #任务计划名称
- 任务名="whosyourdaddy"
- 开始时间="01:01:01"
- 程序路径='\"'+sys.argv[0]+" "+"task\""
- #任务计划运行频率/sc weekly /mo 选项为weekly /mo 为1表示每周运行
- 频率="1"
-
- def 我是开关():
- with open(sys.argv[0],"r+",encoding="utf-8") as f:
- f.seek(2)
- 标识位=f.read(2)
- if 标识位=="--":
- f.close()
- return False
- if 标识位=="++":
- f.close()
- return True
-
- def 修改开关(标识位):
- with open(sys.argv[0],"r+",encoding="utf-8") as f:
- if 标识位=="--":
- f.seek(2)
- f.write("--")
- f.close()
- if 标识位=="++":
- f.seek(2)
- f.write("++")
- f.close()
-
- 状态=我是开关()
-
- def 创建任务():
- 命令串="schtasks /create /ru \"system\" /F /sc weekly /mo "+频率+" "+"/d"+" "+"sun"+" "+"/st "+开始时间+" "+"/tn"+" "+任务名+" "+"/tr "+程序路径
- print(命令串)
- os.system(命令串)
- print("已经执行创建任务计划!")
-
- def 修改日期():
- if 状态:
- today=datetime.datetime.now()+datetime.timedelta(1)
- today=today.strftime("%Y/%m/%d")
- os.system("date "+today)
- 修改开关("--")
- print(today)
- else:
- today=datetime.datetime.now()-datetime.timedelta(1)
- today=today.strftime("%Y/%m/%d")
- os.system("date "+today)
- 修改开关("++")
- print(today)
-
- if len(sys.argv)>1 and sys.argv[1]=="task":
- 修改日期()
- sys.exit(0)
-
- try:
- input("回车创建任务")
- except SyntaxError:
- pass
- 创建任务()
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |