回显和输出相关的命令
ECHO是最简单也是最常用的命令。
我们首先需要学习一些和显示相关的内容毕竟我们会经常对着这个窗口,我们通过它了解执行的情况和得到的结果,甚至需要用它来debug。
当然,我们也可以让它变得很炫,甚至可以做个星球大战的动画,但是,你必须从学习echo开始。
回到刚才的例子,让我们重新执行一下,看一下这个黑乎乎的界面上有哪些信息。
Echo 和 @
*提示:你可以首先通过“echo /?”去了解一些有关它的内容。
@字符放在命令前,将关闭命令的回显,就是说不会将命令本身打印出来。例如我们在batch文件里执行“echo hello kitty”看到的结过会先显示我们执行的命令和执行所在目录“C:\echo hello kitty”然后紧接着显示他的执行结果“hello kitty”。
echo 的单独用法,主要有下面几个,而组合用法则很多,会在后面的章节讲解:
1.打开/关闭回显功能
格式:echo [{ on|off }]
你会在很多别人的实例程序看到“@echo off”作为batch的开头,它将关闭后续的命令回显和自己的回显,使得后面的命令不必在其前方加“@”字符就可以隐藏命令;
2.输出指定的信息
格式:echo 内容
这个是最常用也是很简单的,但也是最常用的;
3.输出空行
格式:echo.
”.”紧跟在echo后面,他们之间不能有空格,这个命令相当于一个回车符,他可以被DOS管道传递到其他命令中去例如“echo. |time”。
现在让我们来自己写一个batch文件,看看echo的效果
Echodemo.bat | |
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. | echo hello kitty! @echo. @echo hello kitty! @echo. echo off echo hello kitty! echo. echo. |time echo. pause |
REM 和 ::
REM为注释命令,一般用来给程序加上注解,该命令后的内容不被执行,但能回显。
“::”也可以起到REM的注释作用,而且更简洁有效。
这里需要说明的是,任何以“:”冒号开头的字符行,在批处理文件中均被视为标号,而直接忽略其后的所有内容,而“:”后面如果紧跟的是一个字母或数字开头的字符串,会被goto语句识别,成为一个有效的标号;而“:”后面紧跟一个非字母和数字的特殊符号,goto将无法识别,就可以起到注释作用了,“::”只是一种约定俗成的写法,其实“:+”也能起到相同的作用。
Q.那REM和::有什么区别么?
A.是的,“::”后的字符行在执行时不会回显,无论是否使用echo on打开命令回显状态,命令解释器都认为它是一条无效的命令行,就这点来看REM在某些场合更适用;另外,REM可以用在config.sys中。
Pause
在后面的例子里会经常看到这个命令,顾名思义,这个命令就是暂停,等待用户按任意键继续。如果没有这个命令,批处理程序会在执行完成后自动关闭,那样我们就看不到窗口和回显信息了。
使用pause命令你会看到如下:
要显示其他提示语,可以这样用:
Echo 其他提示语 & pause > nul
有时候,我们肯能希望我们的窗口不是这么的单调乏味,或者我们希望某些内容看起来更醒目,也许窗口应该以我们的程序命名。这时候你就需要用到 COLOR、TITLE这些命令了。
TITLE命令
用来设置cmd窗口的标题,你可以在batch里这么写:
@echo off
title hello kitty software
pause
COLOR命令
设置默认的控制台前景和背景颜色。
COLOR [attr]
attr 指定控制台输出的颜色属性
颜色属性由两个十六进制数字组成,第一个为背景,第二个为前景,如果不带参数执行该命令颜色会被还原到cmd.exe启动时的颜色;如果使用相同的前景和背景颜色,COLOR命令会将ERRORLEVEL设置为1.
@echo off
color fc
pause