批处理技术内幕:序

标签: , , , ,

批处理是我见过的最丑陋的脚本,杂乱无章的语法,语焉不详的文档,似是而非的教程,良莠不齐的用户,一切都是那么的混乱不堪。

在我还没有听说过VBScript脚本之前,我就已经开始接触批处理了,那是大一第一个学期的期末考试之后,跟着中国DOS联盟的教程学习,幻想着自己有一天也能成为批处理的高手。后来,中国DOS联盟由兴盛转向衰落,我对VBScript从一无所知到略知一二,然而批处理水平却没有任何长进。

其实这并不能怪我,当你学习过任何一门正常点的编程语言之后再回过头看批处理,你就会对它凌乱的语法感到恶心,对它鸡肋的功能表示不满。如果批处理能做的VBScript都能做,批处理不能做的VBScript也能做,那我还学批处理做什么呢?

如果这个问题有答案的话,那么答案也许就是为了耍酷,或者换一个词,装逼。“嘿,你看,我连批处理都会,是不是很厉害?”

但是想深入了解批处理是很困难的,其他语言都可以在书店找到一摞厚厚的教科书,如果批处理也有那么一本价格不菲的权威书籍,你会掏钱买吗?当然不会!所以不会有这么一本书。至于网上的那些教程,大部分只是帮助文档的简单重复罢了。

于是我想到了逆向分析,借助OllyDbg和IDA Pro等工具来探索cmd.exe的内部运行机制,试图揭开批处理的神秘面纱。我会把分析的笔记整理出来,并取名为《批处理技术内幕》,听起来很牛逼,只不过是为了吸引眼球罢了。

最后以一行没有技术含量的代码结束:

@echo off&setlocal=enabledelayedexpansion&(for=%%!=in=(h=t=t=p=:=/=/=d=e=m=o=n=.=t=w)=do=set,=!,!%%!)&start=!,!&pause

提示1:文章的测试环境均为Windows 7 Ultimate Service Pack 1 英文原版,恕不累述,不同的系统之间可能会有细微的差别。

提示2:批处理技术内幕系列文章并不是批处理教程,相反,我假定你有批处理基础,并且最好对字符编码、系统API函数、C语言有所了解,当然懂汇编就更好啦。

随机文章:

  1. Windows下编译cURL
  2. ___security_cookie
  3. 用VBS实现PHP的sha1_file函数
  4. 用VBS实现PHP的SHA1函数
  5. 用EnumSystemCodePages函数枚举系统代码页

一条评论 发表在“批处理技术内幕:序”上

  1. mike说道:

    cmd.exe在xp和7的行为貌似不太一样…
    另外发现chcp 932不能用orz

留下回复