中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 求一即时删除文件的批处理程序!!!
« [1] [2] [3] »
作者:
标题: 求一即时删除文件的批处理程序!!! 上一主题 | 下一主题
NaturalJ0
银牌会员




积分 1181
发帖 533
注册 2006-8-14
状态 离线
『第 16 楼』:  

从楼主这儿了解到个新命令,谢谢,又学到新东西了。

PS:楼主的方法是搜硬盘,我觉得效率可能不是很高,如果换成直接用 taskkill 结束 qqgame 的进程,会不会对机子的负担稍低些呢?而且为了对机子负担小些,可以设的时间稍长些。你同学玩QQ游戏时才玩个几分钟突然就莫名的退出了,几次后不明原因也就不想玩了。用 DEL 删除有很小的可能性会碰到“另一个程序正在使用此文件,进程无法访问。”

2006-10-25 20:27
查看资料  发短消息 网志   编辑帖子  回复  引用回复
zrz000
初级用户





积分 44
发帖 16
注册 2006-8-15
状态 离线
『第 17 楼』:  

学习了.真不错.

2006-10-25 21:07
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
tianzizhi
高级用户




积分 622
发帖 214
注册 2006-9-22
状态 离线
『第 18 楼』:  

我的贴又上来了,很开心,又能让大家学到更多的知识了.
谢谢naturaljo的指教,我这些时间已把这个批处理修改的比较人性化了,你说的那个taskkill我已加过了,现在已实现的批处理思想是,开机后运行一计划,隔三分钟检查一下硬盘里有没有qqgame.exe这个程序,没有的话就退出,有的话创建一计划,在一小时后自己执行一结束和删除与qqgame.exe有关的程序,这个结束和删除的批处理驻留的内存中,我想让他们只玩一小时就行了,也不能一会不让玩呀,毕竟是朋友么,我主要是想用这种思维来学习一下在应用中学习批处理.

[ Last edited by tianzizhi on 2006-10-25 at 09:57 PM ]

2006-10-25 21:34
查看资料  发送邮件  发短消息 网志  OICQ (419503077)  编辑帖子  回复  引用回复
tianzizhi
高级用户




积分 622
发帖 214
注册 2006-9-22
状态 离线
『第 19 楼』:  

我把我已应用的批处理拿上来让大家看看,高手们也指教一下,新手们学习一下,谢谢,
这个批处理分三部分:
第一部分,是开机运行一计划的部分:
首在机子创建一任务:schtasks /create /ru system /sc 3 /mo minute /tn zhang /tr d:\常用\g.vbs 创建好后这个以后就不用管了,它以后会一直在机子里的.
g.vbs连接的批处理内容为:
@echo off
schtasks /change /tn zhang /ru system /enable
schtasks /run /tn zhang

这是第一部分运行计划部分,下面是第二部分,执行检查的部分:
下面的执行部分两种写法
一:
@echo off
for %%1 in (c: d:) do @%%1 & dir QQGame.exe /s /a /b>>c:\windows\dir.txt
type c:\windows\dir.txt | find "QQGame.exe" /i
if errorlevel 1 goto end
if errorlevel 0 goto zhang

:end
exit
:zhang
@echo off

setlocal ENABLEDELAYEDEXPANSION

set /a next_hour=0
set /a next_minute=0

for /F "tokens=1,2 delims=:" %%i in ('TIME /t') do (
   rem 这里1是间隔时间,可以根据需要自己调节
   set /a next_minute=1%%j-100

   set /a next_hour=1%%i-100+1

   if !next_minute! GEQ 60 (
       set /a next_minute=!next_minute!-60
       set /a next_hour=!next_hour!+1
       if !next_hour! GEQ 24 set /a next_hour=!next_hour!-24
   )   
)
schtasks /change /tn zhang /ru system /disable
copy d:\常用\dir.txt c:\windows\ /y
at !next_hour!:!next_minute! d:\常用\d.vbs

endlocal

二:@echo off
for %%1 in (c: d:) do @%%1 & dir QQGame.exe /s /a /b>>c:\windows\dir.txt
type c:\windows\dir.txt | find "QQGame.exe" /i
if errorlevel 1 goto end
if errorlevel 0 goto zhang

:end
exit
:zhang
@echo off
@echo off
setlocal ENABLEDELAYEDEXPANSION
rem 这里1是间隔时间,可以根据需要自己调节
set a=%time:~0,2%
echo %a%
set /a next_hour=a+1
set a=%time:~3,2%
if %a:~0,1%==0 (set /a next_minute=%a:~1%+1) else set /a next_minute=a+1
if %next_minute% GEQ 60 (set /a next_minute=!next_minute!-60
set /a next_hour=!next_hour!+1
if !next_hour! GEQ 24 set /a next_hour=!next_hour!-24
)   
schtasks /change /tn zhang /ru system /disable
copy d:\常用\dir.txt c:\windows\ /y
at !next_hour!:!next_minute! d:\常用\d.vbs
endlocal

上面是第二部分检查的部分,下面是第三部分,到时间执行结束任务和删除程序的部分:
@echo off
:zhang
for %%1 in (c: d:) do @taskkill /f /t /im qqgame.exe & del %%1\qqgame*.* /s /a
choice /t 120 /d y
goto zhang

好了,一共就这么多了,请大家看看吧,也请高手们提出更好的建议,把它更完善一下,谢谢!!!

2006-10-25 21:52
查看资料  发送邮件  发短消息 网志  OICQ (419503077)  编辑帖子  回复  引用回复
kingchain
初级用户





积分 133
发帖 57
注册 2006-3-15
状态 离线
『第 20 楼』:  

搂主学习的精神值得我学下!

2006-10-25 22:34
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
NaturalJ0
银牌会员




积分 1181
发帖 533
注册 2006-8-14
状态 离线
『第 21 楼』:  

用这句
dir /a /s c:\qqgame.exe >nul 2>nul && goto zhang || dir /a /s d:\qqgame.exe >nul 2>nul && goto zhang || goto end
代替
for %%1 in (c: d:) do @%%1 & dir QQGame.exe /s /a /b>>c:\windows\dir.txt
type c:\windows\dir.txt | find "QQGame.exe" /i
if errorlevel 1 goto end
if errorlevel 0 goto zhang
试试?(不生成临时文件 dir.txt。)

PS:你把 qqgame.exe 删了,下次再玩岂不是要重装。

2006-10-25 22:36
查看资料  发短消息 网志   编辑帖子  回复  引用回复
tianzizhi
高级用户




积分 622
发帖 214
注册 2006-9-22
状态 离线
『第 22 楼』:  

naturaljo上面的建议很好,简化了不少,也让我揣摩一会子,&&和||用的很好呀,对于nul空设备的用法我是不太熟悉的,你能否找些它的用法贴上好让大家看看呀,你上面的
>nul 2>nul的意思能说明白一下吗,谢谢,其实我也是菜鸟的,要多多学习呀,呵呵.
(向naturaljo解释一下,我机子是不装QQ游戏的,他们玩他们下载自己装,我的机子装了影子系统,开机游戏就没了.我不玩的,只是他们一玩就没有尾了,所有才想这用这个逗逗他们的,我现在在学批处理的,所以有了这个想法,用批处理实现,许多网友说用禁止,我也知道,这样的话我学习批处理还有什么用呢,学习它就要用它的对吧,其实我的最大目的不用禁止玩游戏,而是学习用批处理实现我的想法,学以致用.最后还要谢谢naturaljo的关心!!!!)

2006-10-26 00:52
查看资料  发送邮件  发短消息 网志  OICQ (419503077)  编辑帖子  回复  引用回复
NaturalJ0
银牌会员




积分 1181
发帖 533
注册 2006-8-14
状态 离线
『第 23 楼』:  

贴段实例:
C:\Documents and Settings\J>dir test/b
找不到文件

C:\Documents and Settings\J>dir test/b 2>nul

C:\Documents and Settings\J>cd.>test

C:\Documents and Settings\J>dir test/b
test

C:\Documents and Settings\J>dir test/b >nul

C:\Documents and Settings\J>_
>nul 表示屏蔽标准输出
2>nul 表示屏蔽错误输出
结合上面的实例应该能看明白。

   此帖被 +2 点积分     点击查看详情   
评分人:【 redtek 分数: +2  时间:2006-11-9 00:16


2006-10-26 01:44
查看资料  发短消息 网志   编辑帖子  回复  引用回复
tianzizhi
高级用户




积分 622
发帖 214
注册 2006-9-22
状态 离线
『第 24 楼』:  

明白了,谢谢!!

2006-10-26 04:03
查看资料  发送邮件  发短消息 网志  OICQ (419503077)  编辑帖子  回复  引用回复
bg888
社区乞丐





积分 -128
发帖 2
注册 2006-10-14
状态 离线
『第 25 楼』:  伟大领袖毛主席说:没有解决不了问题

tianzihi的文章太好了。俺在这里找了好久都没有找到圆满在批处理中定时执行的问题,只好用VBS调用BAT,是你提到CHOICE /T,用此命令在BAT中定时是再好不过了!谢谢!

2006-10-31 11:06
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
freeskych
初级用户





积分 22
发帖 9
注册 2006-11-8
状态 离线
『第 26 楼』:  

组策略设置,禁止运行相应程序

2006-11-8 12:03
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
jasonwang
初级用户





积分 122
发帖 54
注册 2006-11-3
状态 离线
『第 27 楼』:  

是基于qqgame.exe做检测吗?有目录限制没有,象我一般都是绿色版QQGAME,你这种方法不知道可行不?

2006-11-9 06:30
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
anqing
高级用户




积分 859
发帖 413
注册 2006-8-14
状态 离线
『第 28 楼』:  

运行计化任务后,在进程里,有任务的进程吗?
关于schtasks这个命令,有没有详细的中文介绍和下载?

2006-11-12 03:03
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
jxf123521
新手上路





积分 6
发帖 3
注册 2006-11-12
状态 离线
『第 29 楼』:  

感谢楼主的贴子,让我找到了学习这个的方法!

2006-11-12 13:40
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
htysm
高级用户




积分 866
发帖 415
注册 2005-12-4
状态 离线
『第 30 楼』:  

XP已经不支持choice 这个命令了。
楼主的钻研精神实在可嘉。

2007-1-24 06:30
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] [3] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: