标题 | 用批处理修改日期然后在改回来 |
范文 | xp系统,因为要运行一个破解软件,日期必须是2011-02-01,才能运行这个软件,要求,运行这个批处理先记录下今天是xx年x月x日,然后改日期到2011.2.1,然后运行artcampro.exe这个文件,批处理在后台默默运行,30秒一次判断artcampro.exe进程是否存在,如不存在则改回原来日期 其实我也有点思路,就是觉得麻烦,希望批处理达人帮帮忙了 代码如下: @echo off set y=%date:~0,4% set m=%date:~5,2% set d=%date:~8,2% echo %y%/%m%/%d% date 2011/02/01 start d:\artcampro.exe :loop ping -n 31 127.1>nul tasklist |find artcampro.exe>nul if %errorlevel%==1 (date %y%/%m%/%d%&&exit) else (goto loop) pause 30秒循环检测进程是否存在,不存在就改回日期退出批处理. 追问:如果我运行了几次这样的软件,会不会同时有几个这样的进程存在呢? 回答:这得看运行几次是不是连续运行,也就是说之前的程序(artcampro.exe)未关闭,我写的这个只是判断有没有,而不是判断有几个. 如 依梦琴瑶所说 start /wait 等待程序结束.这样可以用来启动一次程序. 追问:不知道有start /wait这个,如关闭掉artcampro.exe程序就能把时间给改回去,这就最好了, 那么应该怎么写呢? 回答: 代码如下: @echo off set y=%date:~0,4% set m=%date:~5,2% set d=%date:~8,2% echo %y%/%m%/%d% date 2011/02/01 start /wait d:\artcampro.exe date %y%/%m%/%d%&&exit pause 完整代码. 追问:以前不知道start /wait,今天长知识了,谢谢你,也谢谢其他回答的各位了。 提问者评价:再次感谢 其他3条回答 代码如下: @echo off (echo %date:~0,-3%)>1.txt date 2011.2.1 start artcampro.exe :loop tasklist|find /i artcampro.exe || goto begin ping -n 30 127.0.0.1>nul goto loop :begin set /p d=<1.txt date %d% pause 命令详解: start /wait 你可以看一下命令帮助 wait 启动应用程序并等待它终止。 command/program 如果它是内部 cmd 命令或批文件,则该命令处理器是使用 cmd.exe 的 /k 开关运行的。这表示运行该命令之后,该窗口 将仍然存在。 如果它不是内部 cmd 命令或批文件,则它就是一个程序,并将 作为一个窗口化应用程序或控制台应用程序运行。 yyykkkyyyy | 十三级 帮你懒一把 批处理放那artcampro.exe程序同位置再发送快捷方式到桌面,如果之前已启用并正在运行那个程序,它就不会再启动程度及改动日期 代码如下: @echo off&cd/d %~dp0 if %~1==h goto begin if not exist hide.vbs ( echo set ws = createobject(wscript.shell^) echo ws.run cmd /c %~s0 h ,vbhide)>hide.vbs start hide.vbs exit :begin tasklist|find/i artcampro.exe&&exit set td=%date:~,10% date 2011-02-01 start /wait artcampro.exe date %td% 其实不用检测,只需利用start /wait命令让批处理等待程序结束即可,所以你可以结合jd08139这个知友的内容即可 |
随便看 |
|
在线学习网范文大全提供好词好句、学习总结、工作总结、演讲稿等写作素材及范文模板,是学习及工作的有利工具。