如何写批处理程序文档格式.docx

上传人:b****6 文档编号:20242141 上传时间:2023-01-21 格式:DOCX 页数:22 大小:28.08KB
下载 相关 举报
如何写批处理程序文档格式.docx_第1页
第1页 / 共22页
如何写批处理程序文档格式.docx_第2页
第2页 / 共22页
如何写批处理程序文档格式.docx_第3页
第3页 / 共22页
如何写批处理程序文档格式.docx_第4页
第4页 / 共22页
如何写批处理程序文档格式.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

如何写批处理程序文档格式.docx

《如何写批处理程序文档格式.docx》由会员分享,可在线阅读,更多相关《如何写批处理程序文档格式.docx(22页珍藏版)》请在冰豆网上搜索。

如何写批处理程序文档格式.docx

    echo你好           显示"

你好"

    pause             暂停,等待按键继续

    rem使用wps          注释将使用wps

    cducdos            进入ucdos目录

    wps              使用wps  

批处理文件中还可以像C语言一样使用参数,这只需用到一个参数表示符%。

%表示参数,参数是指在运行批处理文件时在文件名后加的字符串。

变量可以从%0到%9,%0表示文件名本身,字符串用%1到%9顺序表示。

例如,C:

根目录下一批处理文件名为f.bat,内容为format%1

  则如果执行C:

fa:

   则实际执行的是formata:

又如C:

根目录下一批处理文件的名为t.bat,内容为type%1type%2,那么运行C:

ta.txtb.txt将顺序地显示a.txt和b.txt文件的内容。

此外电脑每次启动时都会寻找autoexec.bat这条批处理文件,从而可执行一些每次开机都要执行的命令,如设置路径path、加载鼠标驱动mouse、磁盘加速smartdrv等,可以使您的电脑真正自动化。

特殊命令

ifgotochoicefor是批处理文件中比较高级的命令,如果这几个你用得很熟练,你就是批处理文件的专家啦。

if表示将判断是否符合规定的条件,从而决定执行不同的命令。

有三种格式:

1、if"

参数"

=="

字符串"

 待执行的命令

参数如果等于指定的字符串,则条件成立,运行命令,否则运行下一句。

(注意是两个等号)

如if"

%1"

=="

a"

formata:

2、ifexist文件名 待执行的命令

如果有指定的文件,则条件成立,运行命令,否则运行下一句。

如ifexistconfig.syseditconfig.sys

3、iferrorlevel数字 待执行的命令

如果返回码等于指定的数字,则条件成立,运行命令,否则运行下一句。

如iferrorlevel2gotox2 DOS程序运行时都会返回一个数字给DOS,称为错误码errorlevel或称返回码

goto批处理文件运行到这里将跳到goto所指定的标号处,一般与if配合使用。

如:

gotoend

:

end

echothisistheend

标号用:

字符串表示,标号所在行不被执行

choice使用此命令可以让用户输入一个字符,从而运行不同的命令。

使用时应该加/c:

参数,c:

后应写提示可输入的字符,之间无空格。

它的返回码为1234……

如:

choice/cmedefrag,mem,end将显示defrag,mem,end[D,M,E]?

例如,test.bat的内容如下:

@echooff

choice/cmedefrag,mem,end

iferrorlevel3gotodefrag应先判断数值最高的错误码

iferrorlevel2gotomem

iferrotlevel1gotoend

efrag

c:

\dos\defrag

mem

echogoodbye

此文件运行后,将显示defrag,mem,end[D,M,E]?

用户可选择dme,然后if语句将作出判断,d表示执行标号为defrag的程序段,m表示执行标号为mem的程序段,e表示执行标号为end的程序段,每个程序段最后都以gotoend将程序跳到end标号处,然后程序将显示goodbye,文件结束。

for循环命令,只要条件符合,它将多次执行同一命令。

格式FOR[%%f]in(集合)DO[命令]

只要参数f在指定的集合内,则条件成立,执行命令

如果一条批处理文件中有一行:

for%%cin(*.bat*.txt)dotype%%c

含义是如果是以bat或txt结尾的文件,则显示文件的内容。

autoexec.bat

DOS在启动会自动运行autoexec.bat这条文件,一般我们在里面装载每次必用的程序,如:

path(设置路径)、smartdrv(磁盘加速)、mouse(鼠标启动)、mscdex(光驱连接)、doskey(键盘管理)、set(设置环境变量)等。

如果启动盘根目录中没有这个文件,电脑会让用户输入日期和时间。

例如,一个典型的autoexec.bat内容如下:

@echooff                  不显示命令行

prompt$p$g                设置提示符前有目录提示

pathc:

\dos;

\;

\windows;

\ucdos;

\tools   设置路径

lhc:

\dos\               加载键盘管理

\mouse\              加载鼠标管理

\dos\smartdrv.exe              加载磁盘加速管理

\dos\mscdex/S/D:

MSCD000/M:

12/V    加载CD-ROM驱动

settemp=c:

\temp                 设置临时目录

IF-EXIST

首先用记事本建立一个文件,文件内容如下:

IFEXIST\AUTOEXEC.BATTYPE\AUTOEXEC.BAT

IFNOTEXIST\AUTOEXEC.BATECHO\AUTOEXEC.BATdoesnotexist

在C盘保存文件为TEST.BAT

然后执行命令

TEST1.BAT

这时,如果AUTOEXEC.BAT中有内容的话会显示出来。

接着再建立一个文件,内容如下:

@ECHOOFF

IFEXIST%1TYPE%1

IFNOTEXIST%1ECHO%1doesnotexist

也保存在C盘,文件名为TEST2.BAT

TEST2AUTOEXEC.BAT

同样,如果AUTOEXEC.BAT中有内容的话会显示出来。

说明:

1.IFEXIST是用来测试文件是否存在的,格式为

IFEXIST[路径+文件名]命令

2.其中第二个文件中的%1是参数,DOS允许传递9个批参数信息给批处理文件,分别为%1---------%9,有点想实参和形参的关系,%1是形参,AUTOEXEC.BAT是实参。

更进一步的,建立一个名为ABC.BAT的文件,内容如下:

IF‘%1’==‘A’ECHOXIAO

IF‘%1’==‘B’ECHOTIAN

IF‘%1’==‘C’ECHOXIN

完成后运行C:

ABC.BATABC

屏幕上会显示C:

XIAOTIANXIA

如果执行C:

ABC.BATAB

XIAOTIAN

DOS将一个空字符串附给参数%3。

可以将NOT放在IF和条件之间,指示IF在条件为假时执行某一命令。

注意:

这个命令可在DOS下输入直接运行。

IF-ERRORLEVEL

用记事本建立一个文件XIAO.BAT,内容如下

XCOPYC:

\AUTOEXEC.BATD:

\

IFERRORLEVEL==0ECHO成功拷贝文件

然后执行文件

XIAO.BAT

如果文件拷贝成功,屏幕就会显示:

成功拷贝文件

IFERRORLEVEL是用来测试它的上一个DOS命令的返回值的,注意只是上一个命令的返回值,因此下面的批处理文件是错误的

IFERRORLEVEL==1ECHO未找到拷贝文件

IFERRORLEVEL==2ECHO用户通过ctrl-c中止拷贝操作

IFERRORLEVEL==3ECHO预置错误阻止文件拷贝操作

IFERRORLEVEL==4ECHO拷贝过程中写盘错误

无论拷贝是否成功,后面的:

未找到拷贝文件

用户通过ctrl-c中止拷贝操作

预置错误阻止文件拷贝操作

拷贝过程中写盘错误

都将显示出来。

这个命令是可以在DOS下直接输入的。

例如:

XCOPY\AUTOEXEC.BATD:

之后可以执行

IFERRORLEVEL==0ECHO成功拷贝文件

如果成功,屏幕将显示:

以下就是几个常用命令的返回值:

backup

出口状态意义

0备份成功

1未找到备份文件

2文件共享冲突阻止备份完成

3用户用ctrl-c中止备份

4由于致命的错误使备份操作中止

diskcomp

0盘比较相同

1盘比较不同

2用户通过ctrl-c中止比较操作

3由于致命的错误使比较操作中止

4预置错误中止比较

diskcopy

0盘拷贝操作成功

1非致命盘读/写错

2用户通过ctrl-c结束拷贝操作

3因致命的处理错误使盘拷贝中止

4预置错误阻止拷贝操作

format

0格式化成功

3用户通过ctrl-c中止格式化处理

4因致命的处理错误使格式化中止

5在提示“proceedwithformat(y/n)?

”下用户键入n结束

xopy

0成功拷贝文件

1未找到拷贝文件

2用户通过ctrl-c中止拷贝操作

4预置错误阻止文件拷贝操作

5拷贝过程中写盘错误

IFSTRING==STRING

首先用记事本建立一个名为XIAO.BAT的文件,文件内容如下:

IF"

=="

A"

FORMATA:

接着执行

XIAOA

屏幕上就出现是否将A:

盘格式化的内容。

这个语句的格式为

要想在DOS下直接使用,只有这样

IF"

毫无意义。

GOTO

IFEXISTC:

\AUTOEXEC.BATGOTOKB

KB

COPYC:

DONE

1.标号前是冒号(:

2.标号的最后一行是:

DONG

3.DOS支持最长为八位的标号,当无法区别两个标号时,将跳转至最近的一个标号。

FOR

FOR%%CIN(*.BAT*.TXT*.SYS)DOTYPE%%C

>

执行以后,屏幕上会将C:

盘所有的以*.BAT*.TXT*.SYS为扩展名的文件内容显示出来,当然不包括隐藏文件。

字符%%C表示FOR命令变量,FOR支持通配符。

 

最近无聊开始研究一种很古老的在dos下无处不在的好东西--批处理程序。

其实也不能算是一种程序,只是将DOS命令写在一个后缀名为.bat(2k/xp中也可以用.cmd)的文件,可以将预先写入的dos命令一起执行,当时是个超级有用的好东东,可以把很多需要一起来执行的命令简化成一条,还有很多意想不到的功能。

不过随着windows这种图形界面的东西出现后,批处理就实在没什么优势了,因为使用起来太不方便,每次用的时候都进入dos界面来运行,任何参数得在dos里跟在程序名后输入,所以很不方便,以至于现在几乎没人用,怀着化废为宝的原则,我开始了对于批处理的研究。

最近才猛然发觉,在windows下,批处理又有它所发挥的余地,而且它有了很多新的优势是其他编程语言没法比较的。

1.编写工具:

无论是写字扳,word,甚至notepad也可以编写,而且不需要编译,改个后缀名直接就能用了

2.编写简单:

因为所有的代码都只是windows内带的命令,没有严格的语法要求,适合像我这种电脑初学者使用,一本dos书就够用了。

3.功能强大;

注册表,文件,服务几乎windows的各个方面都可以用批处理来操作;

没有做不到,只有想不到!

4.在2k/xp中可以将批处理可交互的界面,不需要进入dos界面费力的输入命令参数,在windows中打开直接就能用了

恩,大概以上的种种优势已经够让人心动了,那么今天先来讲点基本的。

首先教大家学批处理的好方法,在cmd中输入“命令/?

”可以显示这条命令的详细使用方法。

输入“copy/?

”我们可以得知以下内容:

将一份或多份文件复制到另一个位置。

COPY[/D][/V][/N][/Y|/-Y][/Z][/A|/B]source[/A|/B]

[+source[/A|/B][+...]][destination[/A|/B]]

source指定要复制的文件。

/A表示一个ASCII文本文件。

/B表示一个二进位文件。

/D允许解密要创建的目标文件

destination为新文件指定目录和/或文件名。

/V验证新文件写入是否正确。

/N复制带有非8dot3名称的文件时,

尽可能使用短文件名。

/Y不使用确认是否要改写现有目标文件

的提示。

/-Y使用确认是否要改写现有目标文件

/Z用可重新启动模式复制已联网的文件。

命令行开关/Y可以在COPYCMD环境变量中预先设定。

这可能会被命令行上的/-Y替代。

除非COPY

命令是在一个批文件脚本中执行的,默认值应为

在改写时进行提示。

要附加文件,请为目标指定一个文件,为源指定

数个文件(用通配符或file1+file2+file3格式)。

呵呵,很详细吧。

恩,先介绍点dos下基础的东西。

首先给个原代码先(很基础的,一个可以修改本机网站地址和静态ip地址的绑定):

@echooff

color0b

setlocal

titleHostsHackv1.0

remWrittenbyKakashi

remFeb16th,2006

echo===================================================

echoHostsHackv1.1

echo.

echo注:

修改hosts文件可以达到屏蔽某些网站的功能

echo版权没有,欢迎盗版!

start

echo现在开始分析%systemroot%\system32\drivers\etc下系统原有hosts文件.......

echo你现在拥有的ip绑定有:

echo*********************************************************

more+18<

%systemroot%\system32\drivers\etc\hosts

echo====准备加入新的ip绑定======

startweb

echo请输入新的网站地址:

set/pwebsite=

if{%website%}=={}gotostartweb

startip

echo请输入绑定的ip:

set/pip=

if{%ip%}=={}gotostartip

echo开始写入hosts文件..............

echo%ip%%website%>

%systemroot%\system32\drivers\etc\hosts

echo完成!

ping127.0.0.1-n3>

nul

cls

gotostart

好了,是不是看得有点头晕呢,不怕,慢慢来,一行一行解释:

@echooff这句的意思是将echo关闭,也就是让批处理什么都不显示,而前加个"

@"

符号表示连echooff这句命令也不显示,一开始就关闭批处理的显示有很多好处:

一方面可以让程序美观简洁,二来可以控制程序显示数据,把需要的数据用命令显示在桌面上让用户能看到,不至于被满屏幕的东西吓倒。

color这条命令是用来控制批处理的美观的,格式如下:

colorbf(b是背景颜色,f是前台(字体)颜色)

0=黑色8=灰色

1=蓝色9=淡蓝色

2=绿色a=淡绿色

3=浅绿色b=淡浅绿色

4=红色c=淡红色

5=紫色d=淡紫色

大家可以根据自己的喜好修改(本人推荐:

color0b)

title:

这条命令的作用就是修改标题栏的文字,美观而已。

使用格式title“任何你喜欢的文字”

rem:

表示解释说明,以rem开头的这一行都算作解释,不会被程序执行。

echo“文字”:

负责显示数据,比方说"

@echo你好"

这条命令运行后屏幕上就会出现“你好”二字。

而"

echo."

表示输出一个回车,也就是空一行。

开始进入重点了:

start这个命令表示建立一个名字为start的跳转点,前面的冒号说明这个start是个跳转点,以后程序只要用个gotostart程序就跳回来了。

下面这里大家跳过几行,能看到这样一句代码“echo现在开始分析%systemroot%\system32\drivers\etc下系统原有hosts文件.......”

%systemroot%表示的是一个名字为systemroot变量,它所带的值就是windows系统目录的路径,这是个系统变量,大家可以在cmd中输入set查询所有变量。

好接着看了

%systemroot%\system32\drivers\etc\hosts:

这段代码比较复杂,首先"

<

"

这个符号表示重定向,将最后的那个hosts文件交给more这个命令来处理,然后more+18表示将hosts这个文件从第18行开始显示,就是略过前18行的内容(那些内容大家可以自己去看,是windows的说明内容)

开始进入交互部分了:

这段代码当作公式来记忆:

set/pwebsite=:

表示将用户的输入来作为website的值,而交互部分必须要检测用户输入的值是不是不存在,否则程序要错误,所以要是错误的话返回程序重新输入

最后个重点是将用户输入两个值,再加入到文件后面"

表示追加,“>

”表示重新写,会删除原来的内容,然后echo两个变量显示到屏幕上,现在加个重定向到文件,就追加到原来的文件咯,最后那个ping127.0.0.1-n3就是表示要延时3秒,加个>

nul,nul表示没有,重定向到没有就是不显示的意思咯。

终于把程序的大致内容讲了一遍,有兴趣的话,大家可以自己来学习一下,看不懂的朋友可以直接将程序代码复制下来,写成bat文件自己先看看。

大家也可以发挥想象自己来写点东西分享下,我也乐意将自己的新作品分享个大家。

########################################################################

DIY爱好者--好工具自己做之批处理的极限应用

(2)

昨天的那个批处理只是大致介绍了一些批处理的基本运用:

@echooff,重定向等等只是点,可能刚开始看有点累,多看多实践就好了。

推荐一个学习方法:

将部分关键代码删除,看看程序会出现什么错误,然后就能比较快地理解程序运行的原理。

好了今天就先给出一个新的代码(比较头大的,我也整了好久了,才憋出这个程序,做梦的时候都在想,但还是可能会有点问题,所以这只是个测试版本,大家如果发先程序有问题的话请跟贴告诉我,这个测试2版本是我目前为止未发现BUG的版本,但没办法保证有什么我没想到的

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 工作总结汇报

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1