中国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] »
作者:
标题: 求一即时删除文件的批处理程序!!! 上一主题 | 下一主题
tianzizhi
高级用户




积分 622
发帖 214
注册 2006-9-22
状态 离线
『楼 主』:  求一即时删除文件的批处理程序!!!

我不想让别人在我的机子上玩QQ游戏,也不好意思直说,但想让安装QQ游戏后不让它运行,我是这样想的,在我的机子搜索游戏的主程序qqgame.exe只要发现它就马上删除它,这样qq游戏就不能玩了,所以想求一在内存中驻存的批处理文件,只要发现有qqgame.exe这个文件就立刻删除它,但要求这个批处理不能占用太多cpu.我的cpu低,请各位高手帮忙了,谢谢!

[ Last edited by tianzizhi on 2006-10-15 at 11:42 ]

2006-10-15 10:45
查看资料  发送邮件  发短消息 网志  OICQ (419503077)  编辑帖子  回复  引用回复
zh159
金牌会员




积分 3687
发帖 1467
注册 2005-8-8
状态 离线
『第 2 楼』:  


我不行

2006-10-15 10:49
查看资料  发短消息 网志   编辑帖子  回复  引用回复
electronixtar
铂金会员





积分 7493
发帖 2672
注册 2005-9-2
状态 离线
『第 3 楼』:  

设置文件夹的权限即可




C:\>BLOG http://initiative.yo2.cn/
C:\>hh.exe ntcmds.chm::/ntcmds.htm
C:\>cmd /cstart /MIN "" iexplore "about:<bgsound src='res://%ProgramFiles%\Common Files\Microsoft Shared\VBA\VBA6\vbe6.dll/10/5432'>"
2006-10-15 10:49
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
tianzizhi
高级用户




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

我只有管理员帐户的,不想用权限设置,况且也不能确定游戏目录的安装位置的,C盘安装不成可以换成其实盘的,所以这个方法不太行噢,我还是想要可以满足要求的批处理程序的.请高手们动动脑筋了,谢谢!!!!!!!!!!!

[ Last edited by tianzizhi on 2006-10-15 at 11:09 ]

2006-10-15 11:07
查看资料  发送邮件  发短消息 网志  OICQ (419503077)  编辑帖子  回复  引用回复
3742668
荣誉版主





积分 2013
发帖 718
注册 2006-2-18
状态 离线
『第 5 楼』:  

利用脚本的确可以满足楼主的要求,不过楼主同时说要顾及系统性能,那么建议楼主通过修改注册表来实现吧.例如:
Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]
"RestrictRun"=dword:00000001

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\RestrictRun]
"1"="regedit.exe"
"2"="notepad.exe"
"3"="explorer.exe"
保存上面的字符到 禁止程序运行.reg ,然后双击导入注册表.接着结束explorer.exe并立即启动explorer,就只能运行 注册表编辑器,记事本,和explorer了.如果你还有其他需要运行的程序,则在下面依次加上编号和程序路径.
如果你觉得上面的方法不大合适的话也可以用vbs脚本,不过需要付出大概将近7Mb左右的内存吧.

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




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

请3742668版主把批处理文件或脚本贴出来吧,我想试试,谢谢!!

2006-10-15 11:14
查看资料  发送邮件  发短消息 网志  OICQ (419503077)  编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 7 楼』:  


  楼主可以试试下面的代码,也是将其保存为.reg文件,双击运行即可达到你的目的。
Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\DisallowRun]

"1"="poco.exe"
"2"="qqgame.exe"
"3"="qq.exe"
  可以在上面依次添加你不想运行的程序。


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




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

以上大侠的注册表方案是可行的,但不是我最想要的,我还不是我最想要的,经过我一天多的一点点探索,我终于找到我想要的方案了,在这小弟我向大家公布一下的我的探索过程,供大家学习,有不对的地方请大家指教.
我最近在学习批处理,对它很有兴趣,所以才坚持让它来实现的我的想法.
我想让这段程序驻留在内存中随时监控qqgame.exe等类似文件存在,若有的话马上删除到,刚开始我想的是目录安在C盘,
用的命令是:
@echo off
if exist c:\"program files"\tencent\qqgame\qqgame.exe  del c:\"program files\tencent\qqgame\qqgame.exe
(那个双引号是我摸索半天才想到的,不加它的话,就会一直提示:系统无法找到路径.我郁闷了半天,难道是目录层次太多,又拿了d盘作实验,结果不管多少目录都可以找到路径,突然想起programe files 是两个单词,是否因为这个呢,先加了单引号,不行,又加了双引号,行了,很高兴)
虽然这个可以,但有两个毛病:一是不是随时监控的,二是目录确定的太死板,改下目录就不管用了.
为了改进它,我又用到了for 命令:
@echo off
for %%1 in (c: d:) do @del %%1\qqgame*.* /s /a
想想怎么一直执行这个命令呢,想到了再循环一次,用了以下命令:
@echo off
:zhang
for %%1 in (c: d:) do @del %%1\qqgame*.* /s /a
goto zhang
这样在我的机子执行了一下
我靠我的cpu都让它用完了,这还了得,它是个死循环了,得另换法了,
我又想能能让for %%1 in (c: d:) do @del %%1\qqgame*.* /s /a
定期执行一次呢,这样cpu就可以休息一下了
我想到了at命令 用at /?一查,希望又没了,它是最小单位是天啊,我反不能一天执行一次吧,算了,再换吧.
我用help看一下还没有别的好的命令

终于让我查到schtasks这个命令,这个命令应该是windows2003特有的,其它系统好像没有,它的用处实在是太强大了,比at要强几百倍,下面附一点它的资料:
Schtasks
安排命令和程序,使其定期运行或在指定时间运行。向计划中添加任务和从中删除任务、根据需要启动和停止任务以及显示和更改计划的任务。

要查看该命令语法,请单击以下命令:

? schtasks create

? schtasks change

? schtasks run

? schtasks end

? schtasks delete

? schtasks query


schtasks create
计划任务。

Schtasks 针对各种计划类型使用不同参数组合。要查看创建任务的组合语法或查看使用特定计划类型创建任务的语法,请单击以下选项之一。

? 组合语法和参数描述

? 计划任务每 N 分钟运行一次

? 计划任务每 N 小时运行一次

? 计划任务每 N 天运行一次

? 计划任务每 N 周运行一次

? 计划任务每 N 月运行一次

? 计划任务在周的指定天运行

? 计划任务在月份的指定周运行

? 计划任务在每月的特定日期运行

? 计划任务在月份的最后一天运行

? 计划任务运行一次

? 计划任务在每次系统启动时运行

? 计划任务在用户登录时运行

? 计划任务在系统空闲时运行

? 计划任务现在运行

? 计划任务以不同权限运行

? 计划任务以系统权限运行

? 计划任务运行多个程序

? 计划任务在远程计算机上运行


组合语法和参数描述
语法
Schtasks /create /sc ScheduleType /tn TaskName /tr TaskRun [/s Computer [/u [Domain\]User [/p Password]]] [/ru {[Domain\]User | System}] [/rp Password] [/mo Modifier] [/d Day[,Day...]| *] [/m Month[,Month...]][/i IdleTime] [/st StartTime] [/ri Interval] [{/et EndTime | /du Duration} [/k]] [/sd StartDate] [/ed EndDate] [/it] [/Z] [/F]

看了半天用了以下命令:
schtasks /create /u 用户名 /p 密码  /sc minute /mo 1 /tn "即时删除" /tr d:\a.bat
a.bat的内容为:
@echo off
for %%1 in (c: d:) do @del %%1\qqgame*.* /s /a
这样看似可以了,但我还有要求,它的最低间隔时间是1分钟,我觉得时间太长,我想15秒
就执行一次,这个先放这吧,再找一下.
我又查看了一会,让我找到了choice这个命令里的/t参数,t的作用是做出默认的选择前,暂停的秒数,它的单位是秒,这正是我想要的,哈哈,机会来了,让我想到下的命令:
@echo off
:zhang
for %%1 in (c: d:) do @del %%1\qqgame*.* /s /a
choice /t 15 /d y
goto zhang
我保存为a.bat
打开后,发现它是一窗口,不能消失,我想让它在后台运行,找一下相关资料,我觉得用vbs脚本不错,又写了下面的脚本:
set ws=WScript.CreateObject("WScript.Shell")
ws.Run "d:\a.bat",0
保存为b.vbs
这样再运行一下,哈哈,成功了,它在后台运行了,每隔15就会检查机器里有无qqgame*.*这样的文件,有的话就马上删除了,终于实现了我的愿望.




后来我在网上搜了一下,又找到一方法,没有试,不知行不行:

  @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=%%j+1
   set /a next_hour=%%i
   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
   )   
)
at !next_hour!:!next_minute! c:\settimerun.bat
rem 这里是具体所要执行的命令,可以根据需要自己调整
copy c:\windows\system32\notepad.exe d:\notepad.exe


endlocal

@echo on

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





积分 4103
发帖 1744
注册 2006-1-20
来自 甘肃.临泽
状态 离线
『第 9 楼』:  

禁止非法程序好了

2006-10-16 00:07
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
tianzizhi
高级用户




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

我想学的是一种新思维,并用我所学的知识实现它,思考探索的过程很有趣,各位高手若有其它奇妙的想法贴出来大家学习噢!
(不要光想着如何如何禁止它,从另外角度来思考,就算它安装好了,但如果破坏了它的任何文件,或改变了它的原始路径,或文件重新命名了,它照样运行不起来,是不是呀,这些应如何实现呢,大家平时多思考一下吧,换个角度思考,你会发现你的思维灵活了很多)

2006-10-16 04:43
查看资料  发送邮件  发短消息 网志  OICQ (419503077)  编辑帖子  回复  引用回复
vkill
金牌会员





积分 4103
发帖 1744
注册 2006-1-20
来自 甘肃.临泽
状态 离线
『第 11 楼』:  



  Quote:
Originally posted by tianzizhi at 2006-10-16 04:43:
我想学的是一种新思维,并用我所学的知识实现它,思考探索的过程很有趣,各位高手若有其它奇妙的想法贴出来大家学习噢!
(不要光想着如何如何禁止堮..

呵呵

2006-10-16 04:50
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
redtek
金牌会员





积分 2902
发帖 1147
注册 2006-9-21
状态 离线
『第 12 楼』:  

顶!!!



    Redtek,一个永远在网上流浪的人……

_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
2006-10-16 05:28
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 13 楼』:  



  Quote:
终于让我查到schtasks这个命令,这个命令应该是windows2003特有的,其它系统好像没有,它的用处实在是太强大了,比at要强几百倍

  这个schtasks命令不只是windows2003特有的吧,在我的Windows XP sp2上面也有。
  
  是应该好好的学习一下这个命令了,谢谢提醒。




2006-10-16 05:37
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
yiping1973
初级用户




积分 71
发帖 34
注册 2006-9-15
状态 离线
『第 14 楼』:  

高!高!
  这个schtasks命令  
  我也是应该好好的学习一下这个命令了,谢谢提醒。

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





积分 31
发帖 15
注册 2006-8-18
状态 离线
『第 15 楼』:  

从LZ的帖看到了LZ的成长
感觉我对批处理的认识也成长1些
LZ我可以要下你的QQ吗
我的QQ 37730533 你+我也可以
副:批处理 我就知道了

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


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



论坛跳转: