CMD批处理(1)——批处理常用命令总结
echo
打开回显或关闭回显功能,或显示消息。如果没有任何参数,echo命令将显示当前的回显设置。
命令格式1:echo [{on|off}]
命令格式2:echo [message]
例、在命令提示符中关闭回显,并显示"hello world"
创建一个hello.bat脚本文件,输入以下内容
@echo off echo "hello world" pause > nul |
在实际应用中我们也会把这条命令和重定向符号(也称为管道符号,一般用> >> ^)结合来实现输入一些命令到特定的文件中。如:
例2、创建文本文件"echo.txt",内容为"hello world"
echo hello world > echo.txt
注:通过echo 输出空行的方法echo=echo,echo;echo+echo/echo[echo]echo:echo.echo\
rem
在批处理文件或 CONFIG.SYS 里加上注解或说明。类似于在C语言中的/*--------*/,它并不会被执行,只是起一个注释的作用,便于别人阅读和你自己日后修改。
命令格式:rem [comment]
pause
暂停命令。运行 Pause 命令时,将显示下面的消息:Press any key to continue. . .(或:请按任意键继续. . .)。可以将其重定向到空(pause > nul),不显示消息。
call
从一个批处理程序调用另一个批处理程序,并且不终止批处理程序。call命令接受作用调用目标的标签。如果在脚本或批处理文件外使用call,它将不在命令行起作用。另外,call命令还能在相同的进程中互相传值。
命令用法:call [[Drive:][Path] FileName ] [:label [arguments]]
例、创建一个call1.bat脚本文件,输入
@echo off :label |
创建一个call2.bat脚本文件,输入
@echo off call call1.bat pause |
双击执行call2.bat,执行结果如下
goto
跳转命令。程序指针跳转到指定的标签,从标签后的第一条命令开始继续执行批处理程序。
命令格式:goto label
参数说明:
- label 指定批处理程序中用作标签的文字字符串
例、创建一个goto.bat脚本文件,输入
@echo off :label |
双击执行goto.bat,执行结果如下
goto :eof的作用
eof是“end of file”的缩写
在批处理作用主要有二:
1.在无call的情况下,会直接退出批处理,此时等同于exit
2.在call的情况下,会中止call,继续执行其他命令
start
调用外部程序,所有的DOS命令和命令行程序都可以由start命令来调用。
具体用法在上一章有详细讲解,如 start cacls.exe 即可打开计算器。
set
显示、设置或删除变量。
命令格式:set [variable=[string]]
参数说明:
variable 指环境变量名
string 指定要指派给变量的一系列字符串
例1、显示批处理当前已定义的所有变量及其值
set
例2、显示所有以"s"开头的变量及其值
set s
例3、向变量"aa"赋值"abcd"
set aa=abcd
例4、以echo的方式输出环境变量"aa"
echo %aa%
例5、删除变量aa
set aa=
set命令的两个命令行开关
set /A expression
set /P variable=[promptString]
/A 命令行开关指定等号右边的字符串为被评估的数字表达式。
该表达式评估器很简单并以递减的优先权顺序支持下列操作:
( ) | 分组 |
! ~ - | 一元运算符 |
* / % | 算数运算符 |
<< >> | 逻辑移位 |
& | 按位“与” |
^ | 按位“异” |
| | 按位“或” |
= *= /= %= += -= | 赋值 |
&= ^= |= <<= >>= , | 表达式分隔符 |
行之前,显示指定的 promptString。promptString 可以是空的。
注:需要说明的是,批处理中的变量是不区分类型的,不需要像C语言中的变量那样还要区分int、float、char等。比如执行set aa=345后,变量aa的值既可以被视为数字345,也可以被视为字符串345。
windows系统中的常见环境变量
%CD%:当前路径。这和在命令行中输入cd得到的结果相同。
%DATE%:当前日期。这和在命令行中输入date得到的日期及格式结果相同。
%TIME%:当前时间。这和在命令行中输入time得到的时间及格式结果相同。
%ERRORLEVEL%:错误等级,输出的是最后一次出错的错误代码。
%RANDOM%:随机返回一个0~32767之间的整数。
%APPDATA%:当前登录用户的Application Data(应用程序数据)的完整路径。
%LOCALAPPDATA%:应用程序的临时文件路径,包括桌面主题,Windows异常报告,缓存等等。
%ProgramFiles%:program files路径,存放着Windows中安装的应用程序。
%CommonProgramFiles%:公共文件路径,默认为"C:\Program Files\CommonFiles"。
%SystemDrive%:Windows系列系统独有的环境变量,表示系统盘盘符,指出操作系统的安装磁盘(如果在C盘的话,那么值为”C:”)。
%SystemRoot%:Windows系列系统独有的环境变量,表示操作系统的根目录,盘符和%SystemDrive%相同,路径因系统的版本而异,XP及之后的操作系统为"\Windows"。
%windir%:Windows系统文件的安装目录,即Windows文件夹的全路径,在XP及之后的系统中为"C:\Windows"。
%UserDomain%:计算机所在的工作组或者域的名称。
%LOGONSERVER%:当前登录用户的身份验证服务器主机名。
%UserProfile%:Windows系列系统独有的环境变量,表示当前用户的文档的路径。
%UserName%:当前登录用户的用户名。
%PATH%:由一系列的分号分隔的路径组成,用于脚本解析或者命令行在执行命令时,查找匹配的可执行文件或者脚本。路径为绝对路径,对于路径中包含的子路径不会进行递归查找。
关于PATH环境变量的一点说明:Windows中很多程序在安装或者配置过程中(例如JAVA JDK的安装,python的安装等等),都需要配置PATH环境变量,在配置的过程中要注意的是,PATH环境变量的路径中不能包含空格或者非英文字符和标点,不然该路径及该路径后面的所有路径都会失效。例如有一个特别常见的问题,很多朋友在安装完python开发环境,配置完成环境变量后,在cmd中执行python时会提示“"python"不是内部或外部命令,也不是可运行的程序或批处理文件”,这时首先检查下PATH环境变量中添加的路径是否有空格或者非英文字符和标点,如果没问题,可以把在PATH变量值最后添加的路径放到PATH变量值的最前面,这时如果好用了,那么只有一个可能,PATH变量值中存在无效的路径(包含空格或非英文字符和标点),如果还不好用,再检查一下是不是路径写错了吧。
choice
描述:
该工具允许用户从选择列表选择一个项目并返回所选项目的索引。
参数列表:
/C choices 指定要创建的选项列表。默认列表是 "YN"。
/N 在提示符中隐藏选项列表。提示前面的消息得到显示,选项依旧处于启用状态。
/CS 允许选择分大小写的选项。在默认情况下,这个工具是不分大小写的。
/T timeout 做出默认选择之前,暂停的秒数。可接受的值是从 0到 9999。如果指定了 0,就不会有暂停,默认选项会得到选择。
/D choice 在 nnnn 秒之后指定默认选项。字符必须在用 /C 选项指定的一组选择中; 同时,必须用 /T 指定 nnnn。
/M text 指定提示之前要显示的消息。如果没有指定,工具只显示提示。
注意:
ERRORLEVEL 环境变量被设置为从选择集选择的键索引。列出的第一个选择返回 1,第二个选择返回 2,等等。如果用户按的键不是有效的选择,该工具会发出警告响声。如果该工具检测到错误状态,它会返回 255 的ERRORLEVEL 值。如果用户按 Ctrl+Break 或 Ctrl+C 键,该工具会返回 0 的 ERRORLEVEL 值。在一个批程序中使用 ERRORLEVEL 参数时,将参数降序排列。
例、创建一个choice.bat脚本文件,输入
@echo off choice /c YNC /m "确定请按Y,否请按N,关闭请按C" if %errorlevel%==1 goto :Y if %errorlevel%==2 goto :N if %errorlevel%==3 goto :end :Y echo 你选择了确定 goto:end :N echo 你选择了否 goto :end :end echo goodbye pause>nul
双击执行choice.bat,执行结果如下
输入Y