xp系統(tǒng),因為要運行一個破解軟件,日期必須是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秒循環(huán)檢測進程是否存在,不存在就改回日期退出批處理.
追問:如果我運行了幾次這樣的軟件,會不會同時有幾個這樣的進程存在呢?
回答:這得看運行幾次是不是連續(xù)運行,也就是說之前的程序(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程序同位置再發(fā)送快捷方式到桌面,如果之前已啟用并正在運行那個程序,它就不會再啟動程度及改動日期
代碼如下:
@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這個知友的內容即可