|
kyqm
初级用户
积分 152
发帖 42
注册 2004-3-10
状态 离线
|
『楼 主』:
[已结]想让BAT每分钟运行一次,不过在0X:XX会出错。。。
想让BAT每分钟运行一次,不过在0X:XX会出错。。。
____________________________________________________
用计划任务,或者schtasks命令,还有用VBS都能达到目的
不过用计划任务或者schtasks命令会在“计划任务”文件夹留下痕迹,
用VBS会在任务管理器留下痕迹,
还就是用VBS和AT结合隐蔽性稍好一点(当然dos中at一下可以看到)
那么这段代码应该如何改呢?
____________________________________________________
下面是我的测试new.bat
@echo off
set /a step=1
for /f "tokens=1,2 delims=:." %%a in ("%time%") do (
set /a t=100%%a%%100, h=100%%b%%100+%step%
)
set /a s=(t+h/60)%%24,f=h%%60
set s=0%s%&set "f=0%f%"
set /a nian=%date:~0,4%,yue=%date:~5,2%,ri=%date:~8,2%
echo %nian%年%yue%月%ri%日 %s:~-2%:%f:~-2% >>C:\test\test.txt
at /d /y
at %s:~-2%:%f:~-2% /interactive C:\test\new.vbs
exit new.vbs
set Cleaner=createobject("wscript.shell")
Cleaner.run "cmd /c C:\test\new.bat",vbhide 我平日批处理接触不多,这段代码里面用for截取时间的代码也是我抄袭的别人的。没理解透。
拜托兄弟们帮我改改。
谢谢!
[ Last edited by kyqm on 2009-1-14 at 14:50 ]
|
|
2009-1-6 16:34 |
|
|
kyqm
初级用户
积分 152
发帖 42
注册 2004-3-10
状态 离线
|
|
2009-1-6 16:37 |
|
|
yishanju
银牌会员
[b]看你妹啊[/b]
积分 1488
发帖 1357
注册 2006-5-20
状态 离线
|
『第
3 楼』:
计划任务设置成每分钟运行一次就可以了
哪需要这么麻烦
|
有问题请发论坛或者自行搜索,再短消息问我的统统是SB |
|
2009-1-6 16:50 |
|
|
HAT
版主
积分 9023
发帖 5017
注册 2007-5-31
状态 离线
|
|
2009-1-6 19:37 |
|
|
kyqm
初级用户
积分 152
发帖 42
注册 2004-3-10
状态 离线
|
『第
5 楼』:
用计划任务,或者schtasks命令,还有用VBS都能达到目的
不过用计划任务或者schtasks命令会在“计划任务)”文件夹留下痕迹,
用VBS会在任务管理器留下痕迹,
还就是用AT隐蔽性稍好一点(当然dos中at一下可以看到)
就用at的话这段代码应该如何改呢?
|
|
2009-1-7 10:02 |
|
|
kyqm
初级用户
积分 152
发帖 42
注册 2004-3-10
状态 离线
|
|
2009-1-7 10:04 |
|
|
terse
银牌会员
积分 2404
发帖 946
注册 2005-9-8
状态 离线
|
『第
7 楼』:
贴个n分钟后 日期时间 暂测试没问题
@echo off
for /f "tokens=2 delims==" %%i in ('wmic path Win32_OperatingSystem get localdatetime /value') do set Ymd=%%i
for /f "tokens=1-3" %%i in ("%Ymd:~,4% %Ymd:~4,2% %Ymd:~6,2%") do set /a Y=%%i,M=1%%j%%100,D=1%%k%%100,JD=365*(Y-1)+(Y-1)/4-(Y-1)/100+(Y-1)/400+1721425
if %M% equ 1 (set/a JD+=D)else if %M% equ 2 (set/a JD+=D+31)else set/a i="!(Y%%4)&!(!(Y%%100))|!(Y%%400)",JD+=13*(M+1)/5-7+(M-1)*28+D+i
set/p S=请输入分时数:
for /f "tokens=1,2 delims=:" %%i in ('time /t') do set/a S+=100%%j%%100,H=100%%i%%100*60+s
set/a T=H/1440,S=H%%60,H=H/60%%24
if %t% geq 1 call:BY Terse
for %%i in (M D H S) do call set %%i=0%%%%i%%
echo %Y%年%M:~-2%月%D:~-2%日 %H:~-2%时%S:~-2%分
pause&exit
:BY Terse
set/a JD+=T,w=(JD+1)%%7
if %JD% leq 2299160 set/a JD-=10
set /a JD+=68569,N=(4*JD)/146097,JD-=(146097*N+3)/4,I=(4000*JD+1)/1461001,JD-=(1461*I)/4-31,J=(80*JD)/2447,D=JD-(2447*J)/80,JD=J/11,M=J+2-(12*JD),Y=100*(N-49)+I+JD
|
简单!简单!再简单! |
|
2009-1-7 12:43 |
|
|
HAT
版主
积分 9023
发帖 5017
注册 2007-5-31
状态 离线
|
『第
8 楼』:
Re 5楼
at无法直接实现每分钟运行一次
schtasks可以
先看看帮助吧
|
|
|
2009-1-7 13:09 |
|
|
mountvol
初级用户
积分 186
发帖 117
注册 2006-8-14
状态 离线
|
『第
9 楼』:
既然用了VBS何不在VBS里面用wscript.sleep来延时呢?
|
|
2009-1-7 14:22 |
|
|
kyqm
初级用户
积分 152
发帖 42
注册 2004-3-10
状态 离线
|
『第
10 楼』:
已经自行解决,涉及到字符串与数值的转换
如果想知道怎么改的朋友请查资料。
呵呵。
[ Last edited by kyqm on 2009-1-14 at 14:51 ]
|
|
2009-1-14 14:49 |
|