`

bat编程基础语法之实例

阅读更多

来源:http://www.hxstrive.com/article/79.htm

 

在DOS和Windows(任意)系统中.bat文件是可执行文件,由一系列命令构成,其中可以包含对其他程序的调用。这个文件的每一行都是一条DOS命令(大部分时候就好像我们在DOS提示符下执行的命令行一样),你可以使用DOS下的Edit或者Windows的记事本(notepad)等任何文本文件编辑工具创建和修改批处理文件。

 

        批处理,也称为批处理脚本,英文译为batch,批处理文件后缀 bat 就取的前三个字母。它的构成没有固定格式,只要遵守以下这条就可以了:

            1、每一行可视为一个命令

            2、每个命令里可以含多条子命令

            3、从第一行开始执行, 直到最后一行结束(即从上到下顺序执行)

            4、它运行的平台是 DOS

 

        批处理有一个很鲜明的特点:使用方便、灵活,功能强大,自动化程度高。 我不想让自己写的教程枯燥无味, 因为牵缠到代码 (批处理的内容算是代码吧?) 的问题本来就是枯燥的, 很少有人能面对满屏幕的代码而静下心来。所以我会用很多简单实用的例子让读这篇教程的朋友去体会批处理的那四射的魅力, 感受它那古灵精怪的性格,不知不觉中爱上批处理。要学好批处理, DOS基础一定要牢!当然脑子灵活也是很重要的一方面。

 

例一、先给出一个最easy的批处理脚本让大家和它混个脸熟,将下面的几行命令保存为 name.bat 然后执行。

ping sz.tencent.com > a.txt

ping sz1.tencent.com >> a.txt

ping sz2.tencent.com >> a.txt

exit

        是不是都能看的懂?是不是很 easy?但它的作用却是很实用的,执行这个批处理后, 可以在你的当前盘建立一个名为 a.txt 的文件, 它里面记录的信息可以帮助你迅速找到速度最快的 QQ 服务器,从而远离"从服务器中转"那一痛苦的过程。这里 > 的意思,是把前面命令得到的东西放到后面所给的地方,>> 的作用,和 > 的相同,区别是把结果追加到前一行得出的结果的后面,具体的说是下一行, 而前面一行命令得出的结果将保留, 这样可以使这个 a.txt 文件越来越大。 By the way, 这个批处理还可以和其他命令结合,搞成完全自动化判断服务器速度的东东, 执行后直接显示速度最快的服务器 IP,是不是很爽?

 

例二、再给出一个已经过时的例子(a.bat)。

@echo off

if exist C:\Progra~1\Tencent\AD\*.gif del C:\Progra~1\T

encent\AD\*.gif

        为什么说这是个过时的例子呢?很简单,因为现在已经几乎没有人用带广告的 QQ 了,所以它几乎用不上了。但曾经它的作用是不可小窥的:删除 QQ 的广告,让对话框干干净净。这里用地址是 QQ 的默认安装地址,默认批处理文件名为 a.bat,你当然可以根据情况自行修改。在这个脚本中使用了 if 命令,使得它可以达到适时判断和删除广告图片的效果,你只需要不关闭命令执行后的 DOS 窗口,不按 CTRL+C 强行终止命令,它就一直监视是否有广告图片(QQ 也再不断查看自己的广告是否被删除)。当然这个脚本占用你一点点内存,呵呵。

 

例三、使用批处理脚本查是否中冰河。脚本内容如下:

@echo off

netstat -a -n > a.txt

type a.txt | find "7626" && echo "Congratulations! You

have infected GLACIER!"

del a.txt

pause & exit

        这里利用了netstat 命令,检查所有的网络端口状态,只需要你清楚常见木马所使用的端口,就能很 easy 的判断出来是否被人种了冰河。然这不是确定的,因为冰河默认的端口 7626,完全可以被人修改。这里介绍的只是方法和思路。 这里介绍的是方法和思路稍做改动, 就变成可以检查其他木马的脚本了,再改动一下, 加进去参数和端口及信息列表文件后, 就变成自动检测所有木马的脚本了。呵呵,是不是很过瘾?脚本中还利用了组合命令&&和管道命令|。

 

例四、借批处理自动清除系统垃圾,脚本如下:

@echo off

if exist c:\windows\temp\*.* del c:\windows\temp\*.*

if exist c:\windows\Tempor~1\*.* del c:\windows\Tempor~

1\*.*

if exist c:\windows\History\*.* del c:\windows\History\

*.*

if exist c:\windows\recent\*.* del c:\windows\recent\*.

*

将以上脚本内容保存到 autoexec.bat 里, 每次开机时就把系统垃圾给自动删除了。 这里需要注意两点: 

    一、 DOS 不支持长文件名, 所以就出现了 Tempor~1这个东东 

    二、 可根据自己的实际情况进行改动, 使其符合自己的要求

 

例五、先看一个实例。这是一个很有意思的脚本, 一个小巧实用的好东东,把批处理"自动化"的特点体现的淋漓尽致。 先介绍一下这个脚本的来历: 大家都知道汇编程序(MASM)的上机过程,先要对源代码进行汇编、连接,然后再执行, 而这中间有很多环节需要输入很多东西,麻烦的很。如何使这个过程变的简单呢?

@echo off

::close echo

cls

::clean screen

echo This programme is to make the MASM programme autom

ate

::display info

echo Edit by CODERED

::display info

echo Mailto me : qqkiller***@sina.com

::display info

if "%1"=="" goto usage

::if input without paramater goto usage

if "%1"=="/?" goto usage

::if paramater is "/?" goto usage

if "%1"=="help" goto usage

::if paramater is "help" goto usage

pause

::pause to see usage

masm %1.asm

::assemble the .asm code

if errorlevel 1 pause & edit %1.asm

::if error pause to see error msg and edit the code

link %1.obj & %1

::else link the .obj file and execute the .exe file

:usage

::set usage

echo Usage: This BAT file name [asm file name]

echo Default BAT file name is START.BAT

::display usage

        已经给出了每一行命令的解释,两个冒号后面的内容为前一行内容解释,注释在脚本执行时不显示,也不起任何作用。倒数第 5 行行首有一个冒号,可不是笔误哦!具体作用后面会详细讲到。此脚本中 masm 和 link 是汇编程序和连接程序,必须和 edit 程序以及你要编辑的源代码一起在当前目录中。使用这个批处理脚本, 可以最大可能的减少手工输入, 整个过程中只需要按几下回车键, 即可实现从汇编源代码到可执行exe文件的自动化转换, 并具备智能判断功能: 如果汇编时源代码出现错误 (汇编不成功), 则自动暂停显示错误信息,并在按任意键后自动进入编辑源代码界面; 如果源代码汇编成功, 则进行连接, 并在连接后自动执行生成的 exe 文件。 另外, 由于批处理命令的简单性和灵活性, 这个脚本还具备良好的可改进性, 简单进行修改就可以符合不同朋友的上机习惯。 正在学汇编的朋友,一定别忘了实习一下!在这个脚本中出现了如下几个命令:@、echo、::、pause、:和 goto、%以及 if。

 

 

分享到:
评论

相关推荐

    bat 脚本的基本语法和例子

    ### bat脚本的基本语法与应用实例 在计算机领域中,批处理(batch)脚本是一种在Windows操作系统下常用的自动化工具,它通过一系列预定义的命令来执行特定的任务或操作。本文将详细介绍bat脚本的基本语法及其简单...

    bat入门教程内部资料

    通过以上实例,我们可以看出批处理脚本的强大之处在于其简便性和灵活性。通过学习基本的DOS命令和批处理语法,用户可以轻松地编写出满足自己需求的小工具,无论是提高日常工作的效率还是解决特定问题都非常有用。...

    bat教程(全).rar

    - 从"bat教程(全).doc"开始,了解基础语法和常用命令。 - 分析"bat.txt"中的命令,理解其工作原理。 - 执行"U盘不传毒.bat"和"快速清理系统.bat",观察脚本的实际效果,并尝试修改它们以适应自己的需求。 6. **...

    bat的一些经典代码,学习必备!

    1. **命令行基础**:了解DOS命令是批处理的基础,如`dir`用于列出目录内容,`copy`用于复制文件,`del`用于删除文件,`move`用于移动文件,`ren`用于重命名文件,`mkdir`和`rmdir`用于创建和删除目录。 2. **批处理...

    BAT编写详细手册(批处理)

    除了基础命令外,批处理还支持更复杂的语法结构,例如: - **条件判断** (`if`):用于根据不同的条件执行不同的命令序列。 - **跳转** (`goto`):用于在批处理文件内部进行流程控制。 - **循环** (`for`):用于重复...

    bat文件大全.zip

    3. **基础编程入门**:BAT文件是学习命令行和编程概念的良好起点,为学习更复杂的脚本语言(如Python、Bash)打下基础。 4. **系统维护**:了解和掌握BAT文件,有助于进行日常系统维护和问题排查。 **压缩包内容...

    visual bat

    Visual Bat是一款专门针对批处理学习的辅助软件,它提供了直观易用的界面,帮助用户快速掌握批处理编程的基础和进阶技巧。 **批处理基础** 1. **命令行接口**: 批处理的核心在于DOS命令行,如`dir`用于列出目录...

    BAT.rar_bat

    而"BAT学习"很可能是一个包含多个章节或主题的文档,比如PDF或HTML,详细阐述了BAT脚本的基础知识、语法结构、常用命令以及实战应用。 在BAT脚本学习中,可能会涵盖以下几个关键知识点: 1. **基础概念**:理解...

    易语言BAT编辑大师

    总的来说,《易语言BAT编辑大师》的源码是一个全面了解易语言编程、批处理脚本处理、GUI设计等多个方面知识的实例,对学习和实践具有很高的价值。通过对源码的学习和研究,开发者不仅可以提升易语言编程技巧,还能...

    Socket调用服务器bat

    **Socket编程基础知识** Socket是网络编程中的一个抽象概念,它代表了两台机器间的一个通信端点。在TCP/IP协议栈中,Socket提供了一种进程间的通信机制。Socket可以基于多种协议,如TCP(传输控制协议)和UDP(用户...

    bat脚本编写教程

    总之,批处理脚本是一种在Windows环境中非常实用的自动化工具,通过掌握其基本语法和高级编程技巧,可以极大地提升日常操作的效率和准确性。无论是系统管理员、程序员还是普通用户,都可以通过学习和实践,发掘...

    批处理BAT学习 CHM

    这份"批处理BAT学习 CHM"文档很可能包含了这些内容的详细解释和实例,对于想要深入理解和掌握批处理技术的用户来说,是一份非常有价值的参考资料。通过学习和实践,你可以提高工作效率,解决系统管理中的各种问题。

    BAT、CMD批处理程序辅助开发工具

    本文将深入探讨批处理程序辅助开发工具,以及与之相关的知识点。 1. **批处理基础**: - BAT文件:BAT是批处理文件的扩展名,它包含了可执行的DOS命令,允许用户编写简单的命令脚本。 - CMD命令提示符:CMD是...

    250个Java实例源代码

    1. **基础语法**:Java实例源代码将涵盖基本语法,如变量声明、数据类型(包括原始类型如int、char,以及引用类型如String、Object)、流程控制(if语句、for循环、while循环)以及方法定义。 2. **面向对象**:...

    很好的C编程实例,分享了

    这些实例覆盖了C语言的基础到高级主题,如基本语法、文件操作、系统调用、内存管理、数据结构、图形处理、文件格式转换等。对于初学者来说,逐个分析和运行这些程序,不仅可以熟悉C语言,还能了解程序设计的思维方式...

    编程一些收获

    6. **BAT编程** - BAT指的是批处理文件的扩展名,这可能是一个关于如何创建和调试BAT文件的专题,涵盖了批处理编程的实践应用。 从这些资源来看,学习者可能正在探索DOS环境下的编程,包括如何通过批处理脚本自动化...

    批处理编辑器工具可轻松编写BAT文件

    2. **内置实例**:描述中提到该编辑器内置了实例,这意味着它为初学者提供了学习和参考的基础模板,帮助他们快速理解和掌握批处理脚本的编写技巧。 3. **语法高亮**:批处理编辑器通常具备语法高亮功能,能突出显示...

    批处理bat 学习资料整合大全

    2. **BAT制作**: 这可能是一份关于如何创建和编写批处理脚本的教程,包括基本语法、常用命令和技巧,如`@echo off`用于关闭命令回显,`pause`用于暂停脚本执行,以及如何利用`if`、`for`等控制结构进行条件判断和...

Global site tag (gtag.js) - Google Analytics