手机
当前位置:查字典教程网 >脚本专栏 >DOS/BAT >可疑文件的批处理最好能用循环来写主体部分
可疑文件的批处理最好能用循环来写主体部分
摘要:今天找了两篇原来保存的但是没正经看的讲批处理的帖子,虽然讲得比较粗,例子也很简单,但还是小有收获。计划中查可疑文件的批处理最好能用循环来写主...

今天找了两篇原来保存的但是没正经看的讲批处理的帖子,虽然讲得比较粗,例子也很简单,但还是小有收获。计划中查可疑文件的批处理最好能用循环来写主体部分,因为涉及到比较多的文件路径和文件名,直接手工写BAT的话太费劲。而for循环正好可以在一定程度上满足需求,所以对for循环的用法重点看了看,虽然还不太懂,但是试着写了几行代码,效果还可以。

实验中涉及到4个文件:list.txt,pre.bat,check.bat,check.log。

首先,要有list.txt,这个文件记录了所有可疑文件,每行写一个。这个需要手工写,但是只需要写文件路径和文件名,回车换行再写下一个即可,工作量说大也不大,说小也不小。形如:

……

%systemroot%explorer.exe

%systemroot%system32rundll32.exe

……

第二,pre.bat,这是个预处理,是用来生成check.bat这个批处理的。其中使用了for循环,从list.txt中按行读出文件名,替换变量后写入到check.bat当中。这里面使用最多的是echo。在含有输出重定向的操作(包括for循环)中,因为写入check.bat的内容中又含有写入check.log的操作,所以这里使用了双引号,用以屏蔽掉其中一个输出重定向操作。这里就有了一个问题:本来写入check.bat中的命令带了双引号,失去了“命令”的作用而成了“字符串”,所以生成check.bat后还要手工删掉其中所有的双引号。这个不知道能不能用批处理来实现,我目前没有找到什么方法。pre.bat的内容如下:

@echooff

echo@echooff>>check.bat

echoechoBATCHSTARTS...>>check.bat

echoechoPRESSANYKEYTOSTARTTHEBATCH...>>check.bat

echopause>>check.bat

echo"date/t>>check.log">>check.bat

echo"time/t>>check.log">>check.bat

echo"echo-------START------>>check.log">>check.bat

::以上均向check.bat中写入提示文字及命令。

for/F%%iin(list.txt)doecho"ifexist%%iecho%%i&echo%%i>>check.log">>check.bat

::FOR循环,从list.txt中读取文件名,

::IF判断若存在文件则显示文件名并将其写入check.log中。

echo"echo-------END------>>check.log">>check.bat

echoechoBATCHENDS!>>check.bat

echoechoPRESSANYKEYTOEXIT...>>check.bat

echopause>>check.bat

pause

第三,check.bat,这是真正用来检查可疑文件的,也是4个文件中最长的一个,由pre.bat生成之后,手工删除了其中所有的双引号(使用了记事本的替换功能,其实也很方便,完全没有什么工作量)。执行时,若存在可疑文件,则显示并写入记录文件check.log中。该文件内容形如:

@echooff

echoBATCHSTARTS...

echoPRESSANYKEYTOSTARTTHEBATCH...

pause

date/t>>check.log

time/t>>check.log

echo-------START------>>check.log

……

ifexist%systemroot%explorer.exeecho%systemroot%explorer.exe&echo%systemroot%explorer.exe>>check.log

ifexist%systemroot%system32rundll32.exeecho%systemroot%system32rundll32.exe&echo%systemroot%system32rundll32.exe>>check.log

……

echo-------END------>>check.log

echoBATCHENDS!

echoPRESSANYKEYTOEXIT...

pause

第四,记录文件check.log,由check.bat生成,记录检查结果。形如:

2007-01-15

20:18

-------START------

……

C:WINDOWSexplorer.exe

C:WINDOWSsystem32rundll32.exe

……

-------END------

现在剩下的问题就是写list.txt了,具体有多少我没有统计,不过一天应该可以写完,明天可能王经理结账要来公司找我,如果没别的特殊情况的话,明天可以写完,差不多可以将1.0版发给同事和小郭了。

【可疑文件的批处理最好能用循环来写主体部分】相关文章:

win2000关机命令的批处理bat

实现FTP整站上传的批处理代码

自定义配置网络ip、网关、dns的批处理文件

批处理 文件归类整理器(当面目录)

dos下遍历目录和文件的代码(主要利用for命令)

写的不错批处理教程一

用批处理修改日期 然后在改回来

用bat实现定时执行任务的批处理文件

检查网络信息的bat[批处理]文件

批处理倒计时(全屏)

精品推荐
分类导航