用批處理修改日期,而後在改回來html
XP系統,由於要運行一個破解軟件,日期必須是2011-02-01,才能運行這個軟件,要求,運行這個批處理先記錄下今天是XX年X月X日,而後改日期到2011.2.1,而後運行artcampro.exe這個文件,批處理在後臺默默運行,30秒一次判斷artcampro.exe進程是否存在,如不存在則改回原來日期
————————————————————————————
其實我也有點思路,就是以爲麻煩,但願批處理達人幫幫忙了,解決後一定追加懸賞複製粘貼黨就不用來了ide
提問者採納
@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 oop
30秒循環檢測進程是否存在,不存在就改回日期退出批處理.htm
追問:若是我運行了幾回這樣的軟件,會不會同時有幾個這樣的進程存在呢?
回答:這得看運行幾回是否是連續運行,也就是說以前的程序(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,今天長知識了,謝謝你,也謝謝其餘回答的各位了。
提問者評價:再次感謝 ip
其餘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 cmd
命令詳解:
start /wait 你能夠看一下命令幫助it
WAIT 啓動應用程序並等待它終止。io
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這個知友的內容便可
出處:http://zhidao.baidu.com/question/570316060.html?fr=qrl&index=2&qbl=topic_question_2