批处理命令——echo 和 @

【1】echo 命令简介

echo 命令的常见用法(必须掌握)分为以下几种情况:

一、无参数

  作用:显示当前echo的状态:处于打开或关闭状态。

  新建一个文本文件,命名为echo,修改类型为bat,用Notepad++打开,编辑以下内容:

1 echo
2 echo on
3 echo
4 echo off
5 echo
6 pause

  运行结果:

二、有参数

  1. 参数为[on/off]。作用:on打开命令的回显状态;off关闭命令的回显状态。关于“回显”,可以理解为:重复显示。
  2. 参数为message。 作用:打印message内容。
  3. echo前面加@与否。 作用:加@代表不显示当前行命令自身;否则反之。
  4. 参数 message > 文件。 作用:把message内容写入文件中,其中“>”表示“清空另写入”。
  5. 参数 message >> 文件。 作用:把message内容写入文件中,其中“>>”表示“追加再写入”。
  6. 其他.....

  为了更好的理解以上各种情况,举例如下:

  1> 新建一个文本文件,命名为echo1,修改类型为bat,用Notepad++打开,编辑以下内容:

1 echo off
2 echo 123
3 @echo off
4 echo 456
5 @echo on
6 echo 789
7 echo on
8 echo 012
9 pause

  运行结果:

  简单分析:

  第 1 行:echo前没有加@,那么显示当前行命令本身;off表示关闭命令的回显状态。

  第 2 行:参数为“123”,上一句已经关闭了命令的“回显”状态,那么直接显示命令执行的结果即123

  第 3 行:echo前加@,那么不显示当前行命令本身(其实,即使不加也不会显示!请往下看);off表示仍旧为关闭命令的回显状态。

  第 4 行:同第二行,直接显示命令的执行结果即456

  第 5 行:echo前加@,那么不显示当前行命令本身(其实,即使不加也不会显示!请往下看);on表示打开命令的回显状态。

  第 6 行:参数为“789”,由于第五行已经打开命令的回显状态,所以执行此行命令需要重复显示命令,即为:F:\studybat>echo 789

  第 7 行:由于第五行已经打开命令的回显状态,所以执行此行命令需要重复显示命令,即为:F:\studybat>echo on

  第 8 行:与第六行同理

  第 9 行:为了查看显示结果,特此暂停命令。以下示例同理再不做解释。

    2> 新建一个文本文件,命名为echo2,修改类型为bat,用Notepad++打开,编辑以下内容:

1 @echo off
2 echo 123
3 echo off
4 echo 456
5 echo on
6 echo 789
7 @echo on
8 echo 012
9 pause

  运行结果:

  简单分析:

  第 1 行:echo前加@,那么不显示当前行命令本身;off表示关闭命令的回显状态。

  第 2 行:由于第一行已经关闭命令的回显状态,直接显示此行命令的执行结果为123

  第 3 行:由于第一行已经关闭命令的回显状态,而且off表示仍旧关闭命令的回显状态,所以无输出。

  第 4 行:由于第三行仍旧关闭命令的回显状态,直接显示此行命令的执行结果为456

  第 5 行:由于第三行仍旧关闭命令的回显状态,所以此行命令不进行回显。但是,on表示打开命令的回显状态。

  第 6 行:由于第五行打开命令的回显状态,所以执行此行命令需要重复显示命令,即为F:\studybat>echo 789

  第 7 行:由于第五行打开命令的回显状态,但是echo前加@,所以执行此行命令不重复显示命令。on表示仍旧打开命令的回显状态。

  第 8 行:与第六行同理。

  3> 新建一个文本文件,命名为echo3,修改类型为bat,用Notepad++打开,编辑以下内容:

1 @echo off
2 echo 123
3 echo off
4 echo 456
5 @echo on
6 echo 789
7 echo on 
8 echo 012
9 pause

  运行结果:

  简单分析:

  第 1 行:echo前加@,那么不显示当前行命令本身;off表示关闭命令的回显状态。

  第 2 行:参数为“123”,由于第一行已经关闭命令的回显状态,执行此行命令直接反馈结果为123

  第 3 行:由于第一行已经关闭命令的回显状态,所以不再重复显示此命令;off表示仍旧保持关闭回显状态。

  第 4 行:参数为“456”,由于第三行仍旧关闭命令的回显状态,执行此行命令直接反馈结果为456

  第 5 行:由于第三行仍旧关闭命令的回显状态,所以不再重复显示此命令;至于@可以忽略不考虑,但是on表示打开命令的回显状态。

  第 6 行:由于第五行打开命令的回显状态,所以执行此行命令需要重复显示命令,即为F:\studybat>echo 789

  第 7 行:由于第五行打开命令的回显状态,所以执行此行命令需要重复显示命令,即为F:\studybat>echo on 当然,on表示仍旧打开命令的回显状态。

  第 8 行:由于第七行仍旧打开命令的回显状态,所以即与第六行同理。

  4> 新建一个文本文件,命名为echo4,修改类型为bat,用Notepad++打开,编辑以下内容:

1 echo off
2 echo 123
3 @echo off
4 echo 456
5 echo on
6 echo 789
7 @echo on
8 echo 012
9 pause

  运行结果:

  简单分析:

  第 1 行:echo前无@,显示此行命令,即为:F:\studybat>echo off ;off表示关闭命令的回显状态。

  第 2 行:参数为“123”,由于第一行已经关闭命令的回显状态,执行此行命令直接反馈结果为123

  第 3 行:由于第一行已经关闭命令的回显状态,所以不显示此行命令状态。off表示仍旧关闭命令的回显状态。

  第 4 行:参数与“456”,由于第三行仍旧关闭命令的回显状态,执行此行命令直接反馈结果为456

  第 5 行:由于第三行仍旧关闭命令的回显状态,不显示此行命令。但是,on表示从此打开命令的回显状态。

  第 6 行:由于第五行打开命令的回显状态,所以执行此行命令需要重复显示命令,即为F:\studybat>echo 789

  第 7 行:由于第五行打开命令的回显状态,但是echo前加@,所以不显示此行命令。on表示仍旧打开命令的回显状态。

  第 8 行:由于第七行仍旧打开命令的回显状态,所以执行此行命令需要重复显示命令,即为F:\studybat>echo 012

  5> 新建一个文本文件,命名为echo5,修改类型为bat,用Notepad++打开,编辑以下内容:

1 echo on
2 echo I love bat > a.txt
3 echo I love bat too >> a.txt
4 pause

  运行结果:

  通过以上四个例子的分析,如上此例的终端结果就不再做分析。

  另外,在当前目录(即文件夹)中会自动(当然,不存在情况下会先自动生成一个;存在情况下直接按命令写入)生成一个a.txt文本文件,其内容如下:

  简单分析:

  第 2 行:新建文本文件a.txt,写入内容:I love bat

  第 3 行:在文件中追加内容:I love bat too

  注意:文件也可以为其他任意路径,任意名称等。在此不再赘述。

  6> 新建一个文本文件,命名为echo6,修改类型为bat,用Notepad++打开,编辑以下内容:

1 @echo off
2 echo I love bat > b.txt
3 echo I love bat too >> b.txt
4 echo I hate bat > b.txt
5 pause

  运行结果:

  根据前四个示例的情况分析,此例终端结果无任何内容,所以不再呈现。还不理解?请回头再看看前四个例子。

  另外,在当前目录(即文件夹)中会自动(当然,不存在情况下会先自动生成一个;存在情况下直接按命令写入)生成一个b.txt文本文件,其内容如下:

  简单分析:

  第 2 行:新建(因为实际我本地并没有这个文件)文本文件b.txt,写入内容:I love bat

  第 3 行:在文件中追加内容:I love bat too

  第 4 行:清空文件的所有内容,重新再写入内容。具体内容为:I hate bat

  注意:例5与例6的联系。理解“>” 与 “>>”的区别。

  7> echo 字符串 & echo 字符串 ......

  &类似and的意思,逻辑运算,用来显示多行数据。新建一个文本文件,命名为echo7,修改类型为bat,用Notepad++打开,编辑以下内容:

1 echo abc & echo def & echo ghi
2 pause

  运行结果:

  8> 其他

  

【2】@命令简介

   结合以上的示例,不难看出,@命令的作用很简单:

   命令前加@符号,表示不显示@后面的命令。

  举一个不和谐的例子:在入侵过程中(使用批处理来格式化敌人的硬盘)自然不能让对方看到你使用的命令啦。

 

Good Good Study, Day Day Up.

顺序  选择  循环  总结

posted @ 2015-12-20 20:40  kaizenly  阅读(42655)  评论(2编辑  收藏  举报
打赏