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 等待程序結(jié)束.這樣可以用來啟動一次程序.
追問:不知道有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
如果它是內(nèi)部 cmd 命令或批文件,則該命令處理器是使用
cmd.exe 的 /K 開關運行的。這表示運行該命令之后,該窗口
將仍然存在。
如果它不是內(nèi)部 cmd 命令或批文件,則它就是一個程序,并將
作為一個窗口化應用程序或控制臺應用程序運行。
yyykkkyyyy | 十三級
幫你懶一把 批處理放那artcampro.exe程序同位置再發(fā)送快捷方式到桌面,如果之前已啟用并正在運行那個程序,它就不會再啟動程度及改動日期
復制代碼 代碼如下:
@echo offcd/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命令讓批處理等待程序結(jié)束即可,所以你可以結(jié)合jd08139這個知友的內(nèi)容即可