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
call :label
echo 1
echo 2

:label
echo 3
echo 4

创建一个call2.bat脚本文件,输入
@echo off
call call1.bat
pause
双击执行call2.bat,执行结果如下
 

goto

跳转命令。程序指针跳转到指定的标签,从标签后的第一条命令开始继续执行批处理程序。
命令格式:goto label
参数说明:
  • label 指定批处理程序中用作标签的文字字符串
 
例、创建一个goto.bat脚本文件,输入

@echo off
goto :label
echo 1
echo 2

:label
echo 3
echo 4
pause

双击执行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 命令行开关指定等号右边的字符串为被评估的数字表达式。
该表达式评估器很简单并以递减的优先权顺序支持下列操作:
( )   分组
! ~ - 一元运算符
* / % 算数运算符
<< >> 逻辑移位
& 按位“与”
^ 按位“异”
| 按位“或”
= *= /= %= += -= 赋值
&= ^= |= <<= >>= , 表达式分隔符

/P 命令行开关允许将变量数值设成用户输入的一行输入。读取输入

行之前,显示指定的 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

最新文章

  1. 如何在虚拟机里安装Linux
  2. android 单元测试
  3. Android开发工具全面转向Android Studio(2)——AS project/module的CRUD
  4. 必应(Bing)每日图片获取API
  5. SIlverlight外包公司【技术展望】— Silverlight5.1.2最新版本发布,Silverlight 的更新从未停止。
  6. POJ 1759
  7. UVA 11806 Cheerleaders (容斥原理)
  8. js中关于事件处理函数名后面是否带括号的问题
  9. 201521123055 《Java程序设计》第6周学习总结
  10. Android驱动中的Kconfig文件与Makefile文件
  11. Codeforces Round #483 (Div. 2)
  12. margin-top的兼容问题
  13. [大数据面试题]hadoop核心知识点
  14. 021_supervise进行管理利器
  15. 通过flask实现web页面简单的增删改查
  16. 用记事本编写helloworld文件但是javac时报错
  17. mysql跨库复制: replicate_wild_do_table和replicate-wild-ignore-table
  18. CentOS 7.0 Firewall防火墙配置
  19. Expo大作战(十四)--expo中消息推送的实现
  20. 转:C# lock用法

热门文章

  1. v-for详解
  2. MySQL关于日期为零值的处理
  3. C++ primer plus读书笔记——第12章 类和动态内存分配
  4. Node.js核心模块API之文件操作
  5. [刷题] 1 Two Sum
  6. 《我常用的股票投资工具与网站》v2.0
  7. AJAX 原理与使用
  8. 04丨MongoDB特色及优势
  9. WIFF SD卡
  10. linux 安装配置NFS服务器