用批处理修改日期 然后在改回来
XP系统,因为要运行一个破解软件,日期必须是2011-02-01,才能运行这个软件,要求,运行这个批处理先记录下今天是XX年X月X日,然后改日期到2011.2.1,然后运行artcampro.exe这个文件,批处理在后台默默运行,30秒一次判断artcampro.exe进程是否存在,如不存在则改回原来日期
————————————————————————————
其实我也有点思路,就是觉得麻烦,希望批处理达人帮帮忙了,解决后必定追加悬赏复制粘贴党就不用来了
@echooff SETy=%date:~0,4% SETm=%date:~5,2% SETd=%date:~8,2% ECHO%y%/%m%/%d% DATE2011/02/01 START""d:\artcampro.exe :loop ping-n31127.1>nul tasklist|FIND"artcampro.exe">nul IF%errorlevel%==1(DATE%y%/%m%/%d%&&EXIT)else(GOTOloop) pause
30秒循环检测进程是否存在,不存在就改回日期退出批处理.
追问:如果我运行了几次这样的软件,会不会同时有几个这样的进程存在呢?
回答:这得看运行几次是不是连续运行,也就是说之前的程序(artcampro.exe)未关闭,我写的这个只是判断有没有,而不是判断有几个.如"依梦琴瑶"所说start/wait等待程序结束.这样可以用来启动一次程序.
追问:不知道有start/wait这个,如关闭掉artcampro.exe程序就能把时间给改回去,这就最好了,
那么应该怎么写呢?
回答:
@echooff SETy=%date:~0,4% SETm=%date:~5,2% SETd=%date:~8,2% ECHO%y%/%m%/%d% DATE2011/02/01 START/WAIT""d:\artcampro.exe DATE%y%/%m%/%d%&&EXIT pause
完整代码.
追问:以前不知道START/WAIT,今天长知识了,谢谢你,也谢谢其他回答的各位了。
提问者评价:再次感谢
其他3条回答
@echooff (echo%date:~0,-3%)>1.txt date2011.2.1 startartcampro.exe :loop tasklist|find/i"artcampro.exe"||gotobegin ping-n30127.0.0.1>nul gotoloop :begin set/pd=<1.txt date%d% pause
命令详解:
start/wait你可以看一下命令帮助
WAIT启动应用程序并等待它终止。
command/program
如果它是内部cmd命令或批文件,则该命令处理器是使用
cmd.exe的/K开关运行的。这表示运行该命令之后,该窗口
将仍然存在。
如果它不是内部cmd命令或批文件,则它就是一个程序,并将
作为一个窗口化应用程序或控制台应用程序运行。
yyykkkyyyy|十三级
帮你懒一把批处理放那artcampro.exe程序同位置再发送快捷方式到桌面,如果之前已启用并正在运行那个程序,它就不会再启动程度及改动日期
@echooff&cd/d"%~dp0" if"%~1"=="h"gotobegin ifnotexisthide.vbs( echoSetws=CreateObject("Wscript.Shell"^) echows.run"cmd/c%~s0h",vbhide)>hide.vbs starthide.vbs exit :begin tasklist|find/i"artcampro.exe"&&exit settd=%date:~,10% date2011-02-01 start""/wait"artcampro.exe" date%td%
依梦琴瑶|来自手机知道|十三级
其实不用检测,只需利用start/wait命令让批处理等待程序结束即可,所以你可以结合jd08139这个知友的内容即可