[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[原创] 【续】[一日一教学](42)显示提示信息:echo

【原】[一日一教学]批处理系列帖子索引 http://bbs.bathome.net/thread-2576-1-1.html
【续】[一日一教学]批处理系列帖子索引 http://bbs.bathome.net/thread-13798-1-1.html


帮助信息:
  1. 显示信息,或将命令回显打开或关上。
  2.   ECHO [ON | OFF]
  3.   ECHO [message]
  4. 要显示当前回显设置,键入不带参数的 ECHO。
复制代码
命令概括:
echo,全英文echo,意为:回音,反射;这里可以引申为回显。


参数详解:
echo有两种语法,两种都是经常用到的。

先看第一种:
  1. ECHO [ON | OFF]
复制代码
这种语法,意思是“将命令回显打开或关上”。
echo off 常出现在批处理文件的首行,而且还稍有不同,多了个@
例如:
  1. @Echo Off
  2. net user
  3. Pause>Nul
复制代码
效果:
  1. \\HELLOWORLD-PC 的用户帐户
  2. -------------------------------------------------------------------------------
  3.        Administrator            Guest
  4. 命令成功完成。
复制代码
为什么都在首行加上这条语句呢?
echo off是什么意思?
前面加上@又是为什么?

第一个问题是由第二个问题和第三个问题组合形成的,所以只要回答了第二、第三问,第一问也迎刃而解了。


echo off是什么意思?
on 和 off 都是echo 的关键字,所谓关键字就是系统规定、有特殊用途的字符。
echo on 是打开回显,echo off 是关闭回显。

系统默认是echo on,所以每次为了关闭回显,都会在代码的行首加上echo off,加以关闭。

不在行首加echo off。
例如:
  1. net user
  2. Pause>Nul
复制代码
效果:
  1. C:\Users\helloworld\Desktop>net user
  2. \\HELLOWORLD-PC 的用户帐户
  3. -------------------------------------------------------------------------------
  4.         Administrator            Guest
  5. 命令成功完成。
  6. C:\Users\helloworld\Desktop>Pause1>Nul
复制代码
看出差别来了吗?
不关闭回显,net user命令 pause >nul都回显了出来,这在程序运行时会影响结果的美观度,所以大家一般在行首加上echo off。



前面加上@又是为什么?
echo off只能关闭 echo off后面的代码的回显,但不能关闭自身的回显。

还是举例来说明。
例如:
  1. echo off
  2. net user
  3. Pause>Nul
复制代码
效果:
  1. C:\Users\helloworld\Desktop>echo off
  2. \\HELLOWORLD-PC 的用户帐户
  3. -------------------------------------------------------------------------------
  4.         Administrator            Guest
  5. 命令成功完成。
复制代码
net user命令 pause >nul都没有回显了出来,但是Echo off却显示出来了。

所以才要在行首加上@echo off.

echo也可以光杆使用,输入光杆echo,显示当前回显的状态,关闭 or 打开。


第二种语法:
ECHO [message]


message,全英文message,意为:消息、信息、留言。

message可以是任意的字符,但是不能是 on 和 off,因为这两个是关键字,所以,你想输出 on 和 off ,必须用逗号等命令分隔符代替默认的空格分隔符。
例如:
  1. C:\Users\helloworld\Desktop>echo,on
  2. on
  3. C:\Users\helloworld\Desktop>echo,off
  4. off
复制代码
例如:
  1. @echo off
  2. echo 慷慨歌燕市,从容作楚囚。
  3. echo 引刀成一快,不负少年头。
  4. echo “曲线救国”的汪精卫都能做出这样的诗,我辈怎敢不自勉。
  5. echo off
  6. echo on
  7. Pause>Nul
复制代码
扩展阅读:
1.用echo输出空行。
  1. @echo off
  2. echo.
  3. echo 慷慨歌燕市,从容作楚囚。
  4. echo;
  5. echo 引刀成一快,不负少年头。
  6. echo\
  7. echo “曲线救国”的汪精卫都能做出这样的诗,我辈怎敢不自勉。
  8. echo/
  9. echo hello
  10. echo,
  11. pause
复制代码
参考:echo命令耗时对比
http://bbs.bathome.net/thread-4482-1-1.html#pid28940

2.echo 结合重定向输出符 > 可以作为创建文本文件的命令。

例如:
  1. echo hello >c:\1.txt
  2. start 1.txt
复制代码
在c盘根目录创建一个内容为hello的1.txt


由于脚本特性,即是可运行程序又是文本文件,所以echo其实还可以创建各种脚本,vbs、js、html,只要你学会这些脚本语言的使用,你就可以用echo创建它们。

我做了一工具,就是利用了这一特性。
例如:
批处理实现-以网页套图形式浏览当前文件夹中的图片


【补充】需要向一个文件写入多行内容时,需要注意的几个地方:
http://bbs.bathome.net/thread-13860-1-1.html#pid233014
1

评分人数

回复 5# zaixinxiangnian


    也不是转义,只是语法格式而已
ECHO [ON | OFF]

这里是空格。

TOP

返回列表