我的第一个批处理

By 甘小蔗    2017/12/31

MyFirstBat.bat:

  1. @echo off
  2. echo My name is happy.
  3. echo What's your name?>Www.txt
  4. echo 按任意键说再见
  5. pause>nul

将以上代码复制在记事本后,将后缀.txt改为.bat,执行后效果为:

甘小蔗批处理教程-我的第一个批处理


@

关闭当前命令行回显

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

echo

回显命令

语法:
echo [ON/OFF] 打开/关闭回显
echo [message] 显示信息


echo off 关闭回显

执行 echo off 可以关闭掉后面所有批处理命令的回显,只显示执行后的结果,除非执行 echo on 命令来显示回显。但 echo off 无法关掉 echo off 这个命令本身。我们可在其前面添加@来关闭其回显,这样就可以达到所有命令都不显示的目的。所以,我们一般都用@echo off作为批处理的行首,用来取消所有的批处理命令回显。有的人习惯不以@echo off 作为行首,而改为在每行命令前加“@”,这个太繁琐且影响代码查阅效率,不如@echo off方便简洁。

注意,echo 后必须紧跟一个空格或特殊字符,以区分 echo 命令和信息,该空格或特殊字符不会作为信息被显示出来。

例如:echo Hello World!echo.Hello World!echo/Hello World! 三个都是等效的。

echo+空格

查询当前计算机的回显状态,也就是看看当前回显是打开的还是关闭的。


echo.

显示一个空行,相当于一个回车。

注意:“echo”与“.”之间不能有空格,否则“.”将被当做提示信息输出到屏幕。另外“.”可以用 , : ; / [ \ ] + ( = 等任意一个符号替代,不过几乎所有人都只用“echo.”这一种形式。在此有人做过关于echo输出空格的实验,发现用echo.输出空格比较消耗资源,最优组是echo, echo; echo=

但是echo, echo; echo=却不能输出以/?开头的行,如果你需要,可以使用第二组的echo+ echo/ echo[ echo]


echo 文件内容>文件名

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

echo 文件内容>>文件名

将文件内容追加到指定文件中。如果指定的文件中原有别的信息,原先的信息不会被清空。


title

设置命令提示窗口的窗口标题。

语法:
title [string] 参数string为指定的标题

pause

暂停批处理程序,并显示以下消息: 请按任意键继续...

暂停高级技巧: pause>nul 只暂停,不显示任何信息,并且光标移到下一行。

如果我们不想用默认的提示语:“请按任意键继续...”,想用自己自定义信息提示,可以这么写:

  1. @echo off
  2. echo 按 G 键退出当前程序
  3. pause > nul

执行后程序会显示:“按 G 键退出当前程序”的字样。这个可以用来显示其他提示语后退出。 整合起来写为:echo 按 G 键退出当前程序 & pause>nul



拓展

echo ^G

使主板喇叭发生一次鸣响,需要多次鸣响,可以多输入几个^G。不过有些主板不支持声响,执行 echo ^G 后没有任何效果。这里的“^G”不是两个字符,而是一个符号,对应的十进制 ASCII 码是 7, 在 DOS 窗口中用 Ctrl+G 或者 Alt+7 输入(7 为小键盘上的 7)。

那么,在批处理文件里如何写这个符号呢?我们可以从命令行里利用组合键输入这个命令,然后输出到文件里,我们就可以调用或者复制这个蜂鸣符号了。 例如在命令行窗口执行 echo ^G > D:\test.txt,我们就会在 D 盘新建的 test 文件里看到一个不可显示的符号,将这个 txt 文件改为 bat 文件后执行会响两次声,也就每个符号会响两次。为什么呢?原来第一次蜂鸣,是因为计算机要回显本符号,可本符号无法显示,于是计算机给出执行错误的警报。第二次响声是执行本符号的效果,也就是发出一声蜂鸣。于是,我们如果只想发出一声鸣响,阻止本符号回显就行了