![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-02 07:18 |
共 48,037 主题排行 / 350,122 发帖 / 今日 2 篇 / 48,250 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 求一即时删除文件的批处理程序!!! |
| 可打印版本 13,286 / 36 |
| 第1楼 tianzizhi | 发表于 2006-10-15 10:45 |
| 高级用户 发帖 214 积分 623 | |
|
求一即时删除文件的批处理程序!!! 我不想让别人在我的机子上玩QQ游戏,也不好意思直说,但想让安装QQ游戏后不让它运行,我是这样想的,在我的机子搜索游戏的主程序qqgame.exe只要发现它就马上删除它,这样qq游戏就不能玩了,所以想求一在内存中驻存的批处理文件,只要发现有qqgame.exe这个文件就立刻删除它,但要求这个批处理不能占用太多cpu.我的cpu低,请各位高手帮忙了,谢谢!
[ Last edited by tianzizhi on 2006-10-15 at 11:42 ] |
|
| 第2楼 zh159 | 发表于 2006-10-15 10:49 |
| 金牌会员 发帖 1,467 积分 3,687 | |
![]() 我不行 ![]() |
|
| 第3楼 electronixtar | 发表于 2006-10-15 10:49 |
| 铂金会员 发帖 2,672 积分 7,493 | |
|
设置文件夹的权限即可
|
|
| 第4楼 tianzizhi | 发表于 2006-10-15 11:07 |
| 高级用户 发帖 214 积分 623 | |
|
我只有管理员帐户的,不想用权限设置,况且也不能确定游戏目录的安装位置的,C盘安装不成可以换成其实盘的,所以这个方法不太行噢,我还是想要可以满足要求的批处理程序的.请高手们动动脑筋了,谢谢!!!!!!!!!!!
[ Last edited by tianzizhi on 2006-10-15 at 11:09 ] |
|
| 第5楼 3742668 | 发表于 2006-10-15 11:09 |
| 荣誉版主 发帖 718 积分 2,013 | |
|
利用脚本的确可以满足楼主的要求,不过楼主同时说要顾及系统性能,那么建议楼主通过修改注册表来实现吧.例如:
保存上面的字符到 禁止程序运行.reg ,然后双击导入注册表.接着结束explorer.exe并立即启动explorer,就只能运行 注册表编辑器,记事本,和explorer了.如果你还有其他需要运行的程序,则在下面依次加上编号和程序路径. 如果你觉得上面的方法不大合适的话也可以用vbs脚本,不过需要付出大概将近7Mb左右的内存吧. |
|
| 第6楼 tianzizhi | 发表于 2006-10-15 11:14 |
| 高级用户 发帖 214 积分 623 | |
|
请3742668版主把批处理文件或脚本贴出来吧,我想试试,谢谢!!
|
|
| 第7楼 lxmxn | 发表于 2006-10-15 11:55 |
| 版主 发帖 4,938 积分 11,386 | |
|
楼主可以试试下面的代码,也是将其保存为.reg文件,双击运行即可达到你的目的。 可以在上面依次添加你不想运行的程序。 |
|
| 第8楼 tianzizhi | 发表于 2006-10-16 00:03 |
| 高级用户 发帖 214 积分 623 | |
|
以上大侠的注册表方案是可行的,但不是我最想要的,我还不是我最想要的,经过我一天多的一点点探索,我终于找到我想要的方案了,在这小弟我向大家公布一下的我的探索过程,供大家学习,有不对的地方请大家指教.
我最近在学习批处理,对它很有兴趣,所以才坚持让它来实现的我的想法. 我想让这段程序驻留在内存中随时监控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 User ]] User | System}] | *] ] ] 看了半天用了以下命令: 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 |
|
| 第9楼 vkill | 发表于 2006-10-16 00:07 |
| 金牌会员 发帖 1,744 积分 4,103 来自 甘肃.临泽 | |
|
禁止非法程序好了
|
|
| 第10楼 tianzizhi | 发表于 2006-10-16 04:43 |
| 高级用户 发帖 214 积分 623 | |
|
我想学的是一种新思维,并用我所学的知识实现它,思考探索的过程很有趣,各位高手若有其它奇妙的想法贴出来大家学习噢!
(不要光想着如何如何禁止它,从另外角度来思考,就算它安装好了,但如果破坏了它的任何文件,或改变了它的原始路径,或文件重新命名了,它照样运行不起来,是不是呀,这些应如何实现呢,大家平时多思考一下吧,换个角度思考,你会发现你的思维灵活了很多) |
|
| 第11楼 vkill | 发表于 2006-10-16 04:50 |
| 金牌会员 发帖 1,744 积分 4,103 来自 甘肃.临泽 | |
Originally posted by tianzizhi at 2006-10-16 04:43: 呵呵 |
|
| 第12楼 redtek | 发表于 2006-10-16 05:28 |
| 金牌会员 发帖 1,147 积分 2,902 | |
|
顶!!!
|
|
| 第13楼 lxmxn | 发表于 2006-10-16 05:37 |
| 版主 发帖 4,938 积分 11,386 | |
终于让我查到schtasks这个命令,这个命令应该是windows2003特有的,其它系统好像没有,它的用处实在是太强大了,比at要强几百倍 这个schtasks命令不只是windows2003特有的吧,在我的Windows XP sp2上面也有。 是应该好好的学习一下这个命令了,谢谢提醒。 |
|
| 第14楼 yiping1973 | 发表于 2006-10-21 06:50 |
| 初级用户 发帖 34 积分 71 | |
|
高!高!
这个schtasks命令 我也是应该好好的学习一下这个命令了,谢谢提醒。 |
|
| 第15楼 sanhu35 | 发表于 2006-10-25 10:35 |
| 初级用户 发帖 15 积分 31 | |
|
从LZ的帖看到了LZ的成长
感觉我对批处理的认识也成长1些 LZ我可以要下你的QQ吗 我的QQ 37730533 你+我也可以 副:批处理 我就知道了 |
|
| 1 2 3 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |