圆月山庄资源网 Design By www.vgjia.com
今天找了两篇原来保存的但是没正经看的讲批处理的帖子,虽然讲得比较粗,例子也很简单,但还是小有收获。计划中查可疑文件的批处理最好能用循环来写主体部分,因为涉及到比较多的文件路径和文件名,直接手工写BAT的话太费劲。而for循环正好可以在一定程度上满足需求,所以对for循环的用法重点看了看,虽然还不太懂,但是试着写了几行代码,效果还可以。
实验中涉及到4个文件:list.txt,pre.bat,check.bat,check.log。
首先,要有list.txt,这个文件记录了所有可疑文件,每行写一个。这个需要手工写,但是只需要写文件路径和文件名,回车换行再写下一个即可,工作量说大也不大,说小也不小。形如:
……
%systemroot%\explorer.exe
%systemroot%\system32\rundll32.exe
……
第二,pre.bat,这是个预处理,是用来生成check.bat这个批处理的。其中使用了for循环,从list.txt中按行读出文件名,替换变量后写入到check.bat当中。这里面使用最多的是echo。在含有输出重定向的操作(包括for循环)中,因为写入check.bat的内容中又含有写入check.log的操作,所以这里使用了双引号,用以屏蔽掉其中一个输出重定向操作。这里就有了一个问题:本来写入check.bat中的命令带了双引号,失去了“命令”的作用而成了“字符串”,所以生成check.bat后还要手工删掉其中所有的双引号。这个不知道能不能用批处理来实现,我目前没有找到什么方法。pre.bat的内容如下:
@echo off
echo @echo off check.bat
echo echo BATCH STARTS... check.bat
echo echo PRESS ANY KEY TO START THE BATCH... check.bat
echo pause 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 %%i in (list.txt) do echo "if exist %%i echo %%i & echo %%i check.log" check.bat
::FOR循环,从list.txt中读取文件名,
::IF判断若存在文件则显示文件名并将其写入check.log中。
echo "echo -------END------ check.log"check.bat
echo echo BATCH ENDS! check.bat
echo echo PRESS ANY KEY TO EXIT... check.bat
echo pause check.bat
pause
第三,check.bat,这是真正用来检查可疑文件的,也是4个文件中最长的一个,由pre.bat生成之后,手工删除了其中所有的双引号(使用了记事本的替换功能,其实也很方便,完全没有什么工作量)。执行时,若存在可疑文件,则显示并写入记录文件check.log中。该文件内容形如:
@echo off
echo BATCH STARTS...
echo PRESS ANY KEY TO START THE BATCH...
pause
date /t check.log
time /t check.log
echo -------START------ check.log
……
if exist %systemroot%\explorer.exe echo %systemroot%\explorer.exe & echo %systemroot%\explorer.exe check.log
if exist %systemroot%\system32\rundll32.exe echo %systemroot%\system32\rundll32.exe & echo %systemroot%\system32\rundll32.exe check.log
……
echo -------END------ check.log
echo BATCH ENDS!
echo PRESS ANY KEY TO EXIT...
pause
第四,记录文件check.log,由check.bat生成,记录检查结果。形如:
2007-01-15
20:18
-------START------
……
C:\WINDOWS\explorer.exe
C:\WINDOWS\system32\rundll32.exe
……
-------END------
现在剩下的问题就是写list.txt了,具体有多少我没有统计,不过一天应该可以写完,明天可能王经理结账要来公司找我,如果没别的特殊情况的话,明天可以写完,差不多可以将1.0版发给同事和小郭了。
实验中涉及到4个文件:list.txt,pre.bat,check.bat,check.log。
首先,要有list.txt,这个文件记录了所有可疑文件,每行写一个。这个需要手工写,但是只需要写文件路径和文件名,回车换行再写下一个即可,工作量说大也不大,说小也不小。形如:
……
%systemroot%\explorer.exe
%systemroot%\system32\rundll32.exe
……
第二,pre.bat,这是个预处理,是用来生成check.bat这个批处理的。其中使用了for循环,从list.txt中按行读出文件名,替换变量后写入到check.bat当中。这里面使用最多的是echo。在含有输出重定向的操作(包括for循环)中,因为写入check.bat的内容中又含有写入check.log的操作,所以这里使用了双引号,用以屏蔽掉其中一个输出重定向操作。这里就有了一个问题:本来写入check.bat中的命令带了双引号,失去了“命令”的作用而成了“字符串”,所以生成check.bat后还要手工删掉其中所有的双引号。这个不知道能不能用批处理来实现,我目前没有找到什么方法。pre.bat的内容如下:
@echo off
echo @echo off check.bat
echo echo BATCH STARTS... check.bat
echo echo PRESS ANY KEY TO START THE BATCH... check.bat
echo pause 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 %%i in (list.txt) do echo "if exist %%i echo %%i & echo %%i check.log" check.bat
::FOR循环,从list.txt中读取文件名,
::IF判断若存在文件则显示文件名并将其写入check.log中。
echo "echo -------END------ check.log"check.bat
echo echo BATCH ENDS! check.bat
echo echo PRESS ANY KEY TO EXIT... check.bat
echo pause check.bat
pause
第三,check.bat,这是真正用来检查可疑文件的,也是4个文件中最长的一个,由pre.bat生成之后,手工删除了其中所有的双引号(使用了记事本的替换功能,其实也很方便,完全没有什么工作量)。执行时,若存在可疑文件,则显示并写入记录文件check.log中。该文件内容形如:
@echo off
echo BATCH STARTS...
echo PRESS ANY KEY TO START THE BATCH...
pause
date /t check.log
time /t check.log
echo -------START------ check.log
……
if exist %systemroot%\explorer.exe echo %systemroot%\explorer.exe & echo %systemroot%\explorer.exe check.log
if exist %systemroot%\system32\rundll32.exe echo %systemroot%\system32\rundll32.exe & echo %systemroot%\system32\rundll32.exe check.log
……
echo -------END------ check.log
echo BATCH ENDS!
echo PRESS ANY KEY TO EXIT...
pause
第四,记录文件check.log,由check.bat生成,记录检查结果。形如:
2007-01-15
20:18
-------START------
……
C:\WINDOWS\explorer.exe
C:\WINDOWS\system32\rundll32.exe
……
-------END------
现在剩下的问题就是写list.txt了,具体有多少我没有统计,不过一天应该可以写完,明天可能王经理结账要来公司找我,如果没别的特殊情况的话,明天可以写完,差不多可以将1.0版发给同事和小郭了。
圆月山庄资源网 Design By www.vgjia.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
圆月山庄资源网 Design By www.vgjia.com
暂无评论...
更新日志
2024年11月01日
2024年11月01日
- 群星.2023-非凡医者影视原声带【华纳】【FLAC分轨】
- 《寻找弗兰基》全成就一览
- 《传说法师2》EA评测:不是亲生的不心疼
- 《射戮骑士》评测:“幸存者!去杀穿硬核地狱!”
- 群星《名声(黑胶CD)》[WAV+CUE]
- 梅艳芳《女人花》SACD[原抓WAV+CUE]
- 孙露《因为想念》【WAV+CUE】
- 罗艺恒《What Could've Been》[FLAC/分轨][130.04MB]
- 罗熙楷《笼中鸟Caged Bird》[320K/MP3][72.27MB]
- 罗熙楷《笼中鸟Caged Bird》[FLAC/分轨][191.82MB]
- 英雄联盟s14晋级四强队伍是哪些 S14全球总决赛四强战队介绍
- 魔兽世界怀旧服专家模式什么时候开 怀旧服专家模式开启时间介绍
- 魔兽世界永久60级哪个职业最强 魔兽世界永久60级职业推荐
- 上海Major赛事专属版显示器首次亮相PNL高校决赛
- 寻找中国“龙” 感受乐元素的“科普力”