首页 > 代码库 > echo

echo

第一个批处理程序:

@echo off

echo Hello World!

pause

打开sublime,复制粘贴,保存到桌面为 .bat 或  .cmd格式文件,双击运行

技术分享       技术分享

@   关闭当前命令行回显:

放在命令前,无论echo是否为打开状态,在执行窗口中都不显示它后面当前行的命令本身

echo   回显命令:

语法:

echo [on | off]

echo [message]

参数说明:

echo on   打开回显

不常用,一般系统默认就是echo on,只有当执行过echo off后才用

echo off   关闭回显

关闭除当前行的后面所有批处理命令的回显,只显示执行后的结果(即echo off 无法关掉echo off命令本身)。

可以在echo off前添加@,让所有命令都不回显,即:@echo off

echo+空格

查询当前计算机回显状态,on  or  off

echo+信息    显示信息

echo后要紧跟一个空格或特殊字符(空格和特殊字符不会显示),以区分echo命令和信息

如:

echo Hello World

echo.Hello World

echo/Hello World

三者等效

echo.    显示空行,相当于回车

echo和 .  之间没有空格,否则 .  将被输出到屏幕

.  可以用   ,   :   ;   /   [   \   ]   +   (   =   等任意一个符号代替,不过   echo.    更常用(不要反人类…)

echo 文件内容>文件名  

将文件内容输出到指定文件。若指定文件原有别的信息,将被清空

echo 文件内容>>文件名

将文件内容追加到指定文件。若指定文件原有别的信息,将不被清空

如:

echo Hello World>my.txt

没有指定my.txt的路径,执行后,则在当前目录生成内含Hello World的my.txt文件。(如果把 .bat 文件保存在桌面,则在桌面生成my.txt)

技术分享         技术分享

注意:echo Hello World>my.txt,echo后有一个空格。

Hello World后没有空格,my.txt里生成的Hello World后面也没有空格,光标移到下一行(即回车)

若Hello World后加一个空格,即echo Hello World >my.txt,该空格也会被输出到my.txt,同样光标移到下一行

>  后,有无空格无所谓,没影响,一般不加空格

如:

echo Hello Word>D:\my.txt

echo Hello Word>D:my.txt

等效,都是指定输出文件路径的格式,都会在D盘根目录生成my.txt。第二种不合规范,一般用第一种(Don’t be evil…)

(>>  用法同  >)

 

 

 

echo 输出高级技巧

1、输出字符

(1)输出    +   -   *   /   \   (   )   ?   ;   .   ,   “  ‘   :    ::   ~    @     `

@echo off

echo +   -   *   /   \   (   )   ?   ;   .   ,   “  ‘   :    ::   ~    @     `

pause

输出上述字符直接echo即可

(2)输出  ^    >    >>    &    &&    |     ||

@echo off

echo ^^

echo ^>

echo ^>^>

echo ^&

echo ^&^&

echo ^|

echo ^|^|

pause

输出   ^    >    >>    &    &&    |     ||      需要转义字符  ^    的帮助

技术分享      技术分享

若不用转义字符,使用 echo “||”,则代码为:

@echo off

set var=“||”

for %%i in (%var%) do echo %%~i

pause

过于复杂,不如使用转义字符简单直接

技术分享  

(3)输出 %

@echo off

echo %%%%%%%

pause

输出为:

技术分享

7个%,最终输出了3个%:因为用echo输出%,输出的个数是代码个数除以2。批处理不支持浮点数,0.5个就直接舍弃

即:echo %  没有输出内容。  echo %%  和  echo %%%   都只输出一个  %    无论是否延迟变量

(4)输出   !

没有延迟变量时:

@echo off

echo !

echo !!

echo !!!

pause

分别输出1、2、3个感叹号

技术分享

有延迟变量时:

@echo off
setlocal enabledelayedexpansion
echo ^^!
pause

感叹号含义发生转变,成了变量标识符

第一次预处理,!  只是一个普通字符,第一个  ^  转义第二个  ^     有第二次预处理是因为开启了延迟,

把第一次预处理留下的  ^   当做转义字符,用来转义  !   

即:第一次预处理,  !  只是普通字符,第二次预处理,    !变成特殊字符

2、输出大量数据

echo命令每行只能输出一个数据,大量数据在同一行输出要用set命令实现,echo命令无法实现

3、用echo作参数

@echo off

set /p var=

echo %var%|findstr /be [0-9.]*>nul && echo Yes||echo No

pause

这里:echo %var%  不用于显示,而是用作参数

因为单独的 %var%  不能被执行,又没有合适的命令作为  %var%  的开头,所以选用echo

后面的 >nul   用于阻止信息显示,因为只需要其参数功能,不需要其显示功能(其他带参数命令,参考此用法)

4、用echo发声

echo ^G

使主板喇叭发出一次鸣响  若要多次鸣响,多输入几个 ^G即可(有些主板不支持声响,执行 echo ^G无效)

^G 不是两个字符,而是一个符号,对应十进制ASCII码是7     DOS窗口中用 Ctrl+G 或 Alt+7 输入 

echo ^G>1.txt    保存为 .bat文件到桌面运行会响两次

第一次是计算机要回显本符号,但却无法显示,给出执行错误的警报

第二次执行本符号的效果

若要只发出一声鸣响,阻止本符号回显即可:

@echo ^G  或           程序头添加 @echo off  或   echo off

 

echo