echo

Posted siwuxie095

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了echo相关的知识,希望对你有一定的参考价值。

---------siwuxie095

 

第一个批处理程序:

@echo off

echo Hello World!

pause

 

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

image       image

 

 

 

@   关闭当前命令行回显:

放在命令前,无论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)

image         image

注意: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

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

image      image

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

@echo off

set var=“||”

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

pause

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

image  

 

 

(3)输出 %

@echo off

echo %%%%%%%

pause

输出为:

image

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

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

 

 

(4)输出   !

没有延迟变量时:

@echo off

echo !

echo !!

echo !!!

pause

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

image

有延迟变量时:

@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

 

【made by siwuxie95】

 

 

 

 

 

 

 

 

以上是关于echo的主要内容,如果未能解决你的问题,请参考以下文章

variable

TCP常用 端口表

expect 实现模拟交互

Shell常见命令

linux重要命令

Linux| 常用命令