先看批处理之最基础篇!
bat吧
全部回复
仅看楼主
level 5
lf372591531 楼主
各位非常批处理的朋友们,现在我们开始学习批处理新手系列教学的第一课!(适合没有编程经验的朋友)
      按照惯例,先讲一下什么是"批处理".顾名思义,批处理就是把一批或者说是一条条命令放在一个文本里,然后批量执行!执行这
一批命令的文件的扩展名是BAT或者CMD,把任何一批命令放入在有这样扩展名的文件里,执行时里面的命令就会一条条的执行完,当然
我们还可以在其中加入一些逻辑判断的语句,让里面的命令在满足一定条件时执行指定的命令.
      了解了大概意思后,我们正式开始学习.先看一个简单的例子!
     
@echo off
echo "欢迎来到BAT吧!"
pause
把上面的3条命令保存为test.bat或者test.cmd然后执行,他就会在屏幕上显示二行话:"欢迎来到BAT吧!请按任意键继续. . ."
这就是一个简单批处理文件了,我们来分析一下.
这个批处理文件一共就用了2条命令 "echo" 和"pause" 还有一个特殊符号"@"
@符号在批处理中的作用是关闭当前行命令的回显,也就是不显示执行的是什么命令,只显示命令的结果!
你可以执行下面这个批处理文件来理解,保存为*.bat或者*.CMD
@echo 你好
echo 你好
@pause
echo命令的作用有两个,一个是在CMD上回显一行内容.如:echo "欢迎来到BAT吧!",还一个是关闭命令的回显:echo off
echo off的作用就相当于在每条命令前面加一个@符号,这样所有的命令将只会显示结果不显示命令.
我们在echo off这命令前加一个@符号是为了不让echo off这条命令本身显示出来,让批处理更完美!
pause命令就是暂停的意思,防止批处理执行完后直接退出!执行pause命令后会自动在CMD里显示"请按任意键继续. . ."这样一行话!
从上面这个简单的批处理中,我们可以发现其实批处理就是运用一些含有特殊意义的符号和一些完成指定功能的命令组合而成,那么
在批处理中有多少这样的特殊符号和功能命令呢?我们现在就来仔细了解一下一些最常用的!
(以下内容来源网络,请各位仔细阅读,好进入下节的实例说明)
批处理的常见命令
REM
ECHO
GOTO
CALL
PAUSE
IF
还有(FOR,SETLOCAL,SHIFT)这几个命令比较难,不适合写在基础篇,以后说明!
批处理定义:顾名思义,批处理文件是将一系列命令按一定的顺序集合为一个可执行的文本文件,其扩展名为BAT。
这些命令统称批处理命令。
介绍命令
1、REM
REM是个注释命令,一般用来给程序加上注解,该命令后的内容在程序执行时,将不会被显示和执行。
例:REM 这个命令就是注释
这一句将不会被执行
2、ECHO
ECHO是一个回显命令,主要参数有OFF和ON。一般用ECHO MESSAGE来显示一个特定的消息。
例:
Echo off
Rem 以上代表关闭回显(就是不显示所执行的命令)
Echo 这个就是消息(message)
Rem 以上代表显示“这就是消息(message)”这列字符
咱们来看看执行结果:
3、GOTO
GOTO会点编程的朋友就会知道这是跳转的意思。
在批处理中允许以“:XXX”来构建一个标号,然后用GOTO XXX直接来执行标号后的命令。
例:
:lable
REM 上面就是名为LABEL的标号
DIR C:\
DIR D:\
GOTO lable
REM 以上程序跳转标号LABEL处继续执行
咱们来看看结果:
4、CALL
CALL命令可以在批处理执行过程中调用另一个批处理,当另一个批处理执行完后,再继续执行原来的批处理
例:
创建一个2.BAT,内容如下
ECHO 这就是2的内容
创建一个1.BAT,内容如下
ECHO 这是1的内容
CALL 2.BAT
ECHO 1和2的内容全部显示完成。

2010年05月09日 23点05分 1
level 5
lf372591531 楼主

执行1.BAT,来看看结果:
5、PAUSE
PAUSE,玩游戏的人都知道,暂停的意思
在这里就是停止系统命令的执行并显示下面的内容。
例:
PAUSE
6、IF
IF 条件判断语句,语法格式如下:
IF [NOT] ERRORLEVEL number command
IF [NOT] string1==string2 command
IF [NOT] EXIST filename command
解释下:
[NOT]:将返回结果取反值,就是“如果没有”的意思
ERRORLEVEL:
是命令执行完成后返回的退出值
Number:
退出值的数字取值范围0~255,判断时值的排列顺序应该由大到小。返回的值大于等于指定的值时,条件成立
string1==string2:
string1和string2都为字符的数据,英文内字符的大小写将看作不同,这个条件中的等于号必须是两个(绝对相等的意思)
条件相等后即执行后面的command
EXIST filename:
为文件或目录存在的意思
IF ERRORLEVEL这个句子必须放在某一个命令的后面,执行命令后由IF ERRORLEVEL 来判断命令的返回值。
例:
(1)
IF [NOT] ERRORLEVEL number command
检测命令执行完后的返回值做出判断
echo off
dir z:
rem 如果退出代码为1(不成功)就跳至标题1处执行
IF ERRORLEVEL 1 goto 1
REM 如果退出代码为0(成功)就跳至标题0处执行
IF ERRORLEVEL 0 goto 0
:0
echo 命令执行成功!
Rem 程序执行完毕跳至标题exit处退出
goto exit
:1
echo 命令执行失败!
Rem 程序执行完毕跳至标题exit处退出
goto exit
:exit
Rem 这里是程序的出口
(2)IF string1==string2 command
检测当前变量的值做出判断
ECHO OFF
IF 1==2 goto no
Echo 变量相等!
goto exit
:no
echo 变量不相等
goto exit
:exit
看看效果,敲击这个命令1.bat 数字
(3)IF [NOT] EXIST filename command
发现特定的文件做出判断
echo off
IF not EXIST autoexec.bat goto 1
echo 文件存在成功!
goto exit
:1
echo 文件不存在失败!
goto exit
:exit
这个批处理大家可以放在C盘和D盘分别执行,看看效果
特殊符号:
1.   @
2.   >
3.   >>
4.   |
5.   ^
6.   &
7.   &&
8.   ""
9.   ,
10. ;
废话少说,开讲了
一、 @
这个字符在批处理中的意思是关闭当前行的回显。我们从前几课知道
ECHO OFF可以关闭掉整个批处理命令的回显,但不能关掉ECHO OFF这个命令,现在我们在ECHO OFF这个命令前加个@,就可以达到所
有命令均不回显的要求
1.bat
echo off
dir d:\
2.bat
@echo off
dir d:\
二、 >
这个字符的意思是传递并且覆盖,他所起的作用是将运行的回显结果传递到后面的范围(后边可以是文件,也可以是默认的系统控
制台)
比如:
文件1.txt 的文件内容是:
1+1
使用命令:dir *.txt >1.txt
这时候1.txt 内容如下
驱动器 C 中的卷没有标签。
卷的序列号是 3827-1BDD
C:\ 的目录
2004-05-25   00:57         17,755,907 Log.txt
2004-05-26   15:21                  3 1.txt
2004-05-26   15:21                  0 2.txt

2010年05月09日 23点05分 2
level 6
这个...不错但是讲得不细..我看初学者只有悟性高点的才能学会里面教的内容...
2010年05月10日 12点05分 5
level 0
恩~~谢啦~~看完了·~受益匪浅
2010年05月11日 07点05分 6
level 5
lf372591531 楼主
像IF、FOR、SETLOCAL、SHIFT,这些较难的命令,在基础篇只是提及一下,让新手知道有这个命令,大概的了解一下就可以了!
2010年05月12日 03点05分 7
level 5
lf372591531 楼主
回复:8楼
for命令相对来说要复杂了,涉及的知识点要多些,应该在以后的篇幅当中会讲到的!,
T5 ,你还不会吗?[不高兴]
2010年05月12日 05点05分 9
level 7
if复杂?
2010年05月12日 06点05分 10
level 1
顶!
2010年05月16日 11点05分 11
level 1
要顶~~~顶到头破血流
2010年05月20日 13点05分 12
level 4
顶起
2010年05月22日 04点05分 13
level 0
@echo  off<br/>:a<br/>echo 顶!!<br/>goto a
2010年05月22日 06点05分 14
level 0
up
2010年06月01日 02点06分 15
level 11
我白痴,收藏了
2010年06月01日 12点06分 16
level 6
...新手估计看不懂..额觉得不要让新手运行命令的好点...额学都看那种不用运行的...详细些...要运行的都不详细..难懂..
2010年06月02日 04点06分 17
level 1
顶一个。坐等楼主更新。
2010年06月03日 02点06分 18
level 4
非常有用啊,楼主好人,
2010年06月08日 01点06分 19
level 7
居然
前排
了。
2010年06月08日 05点06分 20
level 4
顶起,就是学着有点晕了
2010年06月09日 09点06分 21
level 1
写的不错[背扭]
2010年06月12日 06点06分 22
level 0
谢谢了,我终于明白了…谢谢!
2010年06月14日 05点06分 24
1 2 3 尾页