批处理教程pdf_批处理怎么用

批处理教程pdf_批处理怎么用批处理是Windows自带的一个脚本引擎,语法简洁、内置一些功能强大的命令,并且可以与Windows上的其他软件进行良好的通信。批处理能够提供一系统自动化处理功能,大幅提高日常工作中的一些琐碎重复事情的效率。1.概念批处理(Batch),顾名思义即是指批量处理。批处理是基于dos命令行,Windows默认内置解释器cmd.exe的脚本语言。批处理文件默认保存为.bat或.cmd。批处理是基于Dos命令行,所以批处理是没有GUI的,是运行在命令提示符终端(CommandPromptTermina

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

批处理是Windows自带的一个脚本引擎,语法简洁、内置一些功能强大的命令,并且可以与Windows上的其他软件进行良好的通信。批处理能够提供一系统自动化处理功能,大幅提高日常工作中的一些琐碎重复事情的效率。

1. 概念

  • 批处理(Batch),顾名思义即是指批量处理。批处理是基于dos命令行,Windows默认内置解释器cmd.exe的脚本语言。批处理文件默认保存为.bat或.cmd。
  • 批处理是基于Dos命令行,所以批处理是没有GUI的,是运行在命令提示符终端(Command Prompt Terminal)上的, Command Prompt Terminal也被称为Dos Console。
  • 批处理文件默认的存储格式为ANSI,即使用Windows系统默认的编码格式。
    在这里插入图片描述

2. 解释器

  • 批处理大小写不敏感。
  • 批处理解释器默认是读取一行代码,然后解释执行。
  • 批处理解释器如果读取到圆括号“(”,则认为直到下一个对应的“)”为结束。此方式可以让批处理解释器一次解释执行多条命令。
  • CTRL+C退出当前正在执行的批处理。在这里插入图片描述

3. 语法

3.1. 注释

  • 段注释,主要是利用goto来达到段注释的效果,如:
goto start     
= 可以是多行文本,可以是命令    
= 可以包含重定向符号和其他特殊字符     
= 只要不包含 :start 这一行,就都是注释    
:start
  • 行注释,推荐前面两种方式:
    在这里插入图片描述

3.2. 基础指令

  • Echo命令,用来输出后面的信息,后面的信息是字符串也可以是变量。

  • 回显,显示正在执行的代码内容。

    • 批处理代码默认是开启回显的。
    • Echo off是关闭此后代码的回显,echo on是开启此后代码的回显。
    • @是关闭此行代码的回显。如:@echo “Hello, World!”
    • @echo off是关闭此行代码及此后的回显,@echo on是开启此行及此后代码的回显。
  • Pause,暂停指定,暂停批处理解释器继续读解释执行代码。用户按任何键将继续。

  • Cls,清屏命令,清除当前控制台显示的内容。

3.3. 定义变量

  • 字符串变量

set variable-name=value

set info=Hello world.
echo %info%

注意:=左右都是字符,如果有空格,空格也属性字符串的一部分。
使用set设置的环境变量只在当前进程及其继承进程有效,并且是临时的,进程关闭重启之后失效。

  • 数字变量

set /A variable-name=value

set /A age=18
echo %age%

注意: 可进行加、减、乘、除、取余操作。 它们的符号分别是 + – * / % ,set /a 可计算的数值,
单个数值且最终运算结果只能大于或等于-2的31次方,小于2的31次方“。批处理算术只能针对整数。

set /A num=18
# 注意在文件中%要取转义字符%%,在命令行中不需要
set /A b=%num%%%20

3.4. 字符串

	set toolName=MPTool
	set ver=1.0.1
	set /A verNo=5
	rem 取消字符串变量
	set ver=
	rem 判断字符串变量是否取消
	if [%ver%]==[] echo "String ver is empty" 
	rem 字符串连接
	set mpVer=%toolName%  %ver%  %verNo%
	rem 字符串转整型
	set val=12345
	set /A numeric=%val%
	rem 替换字符串
	set text=Make America great again
	echo %text:America=China%
	
	rem 截取字符串
	set info=abcdefghijklmnopqrstuvwxyz0123456789
	echo 截取前5个字符:
	echo %info:~0,5%
	echo 截取最后5个字符:
	echo %info:~-5%
	echo 截取第一个到倒数第6个字符:
	echo %info:~0,-5%
	echo 从第4个字符开始,截取5个字符:
	echo %info:~3,5%
	echo 从倒数第14个字符开始,截取5个字符:
	echo %info:~-14,5%

3.5. 数组

批处理并不支持真正的数组,以下操作只是模拟数组、列表。

  • 定义数组
   set a[0]=3
   set a[1]=5
   set a[2]=7
  • 单个访问数组
	echo %a[0]% %a[1]% %a[2]% 
  • 遍历访问
	setlocal enabledelayedexpansion
	for /l %%n in (0,1,2) do ( 
	echo ![%%n]! ) 
  • 定义列表
	set list = 1 3 5 7 9
  • 遍历访问
	for %%a in (%list%) do ( 
	echo %%a ) 

3.6. 条件判断

  • 语法

    if condition (do some stuff)
    if condition (do some stuff) else (do other stuff)

  • 示例
	set name=tom
	if %name%==tom (echo yes) 
	set age=21
	if %age%==20 (echo yes) else (echo No)

REM 圆括号内的内容可以换行

  • 其他判断符号
    EQU – 等于
    NEQ – 不等于 
    LSS – 小于
    LEQ – 小于或等于 
    GTR – 大于  
    GEQ – 大于或等于
  • 是否定义
	if defined name (echo Yes) else (echo No)
  • 文件是否存在
	if exist C:\set2.txt echo "File exists" 
	if exist C:\set3.txt (echo "File exists") else (echo "File does not exist") 

3.7. 循环

For中的变量在文件本时,需要使用转义字符%,在控制台时不需要。

  • 遍历字符串
    在这里插入图片描述
  • 遍历文件及目录
    在这里插入图片描述
  • 遍历文本内容
    在这里插入图片描述
  • 循环
    在这里插入图片描述
  • 变量延迟
    for语句只执行后面的一句代码,如果想写多句代码,必须用()。批处理解释代码时,是先读出当前行的代码并解析,for及之后的代码也是一次加载并解释的。这就导致for之后的代码中的变量设置了并没有立即生效。如果想要立即生效,需要启用变量延迟。
    • setlocal enabledelayedexpansion启用延迟的环境变量扩展,直到出现匹配的endlocal 命令,无论 setlocal 命令之前的设置如何。
    • setlocal disabledelayedexpansion禁用延迟的环境变量扩展,直到出现匹配的 endlocal 命令,无论 setlocal 命令之前的设置如何。
    • 示例,求0到100之和。
      在这里插入图片描述

3.8. 输入输出

  • STDIN
    标准输入,默认为键盘输入,标号为0。在批处理中STDIN被处理成CON。
	Rem 以下语句将键盘输入输出到info.txt文件夹。
	Copy con info.txt
	REM 和上面语句等价,按CTRL+C结束输入
	Type con>info.txt
  • STDOUT
    标准输出,默认输出到命令提示符窗口,标号为1。
    在批处理中默认的输出即为STDOUT,可以省略。
	Rem 以下两句等价,将IP信息从STDOUT转到文件info.txt中。
	Ipconfig >info.txt
	Ipconfig 1>info.txt
  • STDERR
    标准错误输出,默认输出到命令提示符窗口,标号为2。
	rem 以下命令只能将net的标准输出记录在result.log文件中,出错信息则会输入到控制台
	net stop myservices >result.log
	rem 如果想把错误信息输出到文件
	net stop myservices 2>result.log
	rem 如果想把正确和错误信息都输出到文件,则需要用重定向即将2重定向到1,这样两者都输出到文件
	net stop myservices 1>>result.log 2>&1
  • nul
    很多命令执行都会输出一些信息,如pause命令。但是如果我不想显示输出的信息,可以将输入信息输出定向到nul,即相当于不用输出。
    在这里插入图片描述
  • set /p
    • 获取用户输入
      在这里插入图片描述
    • 不换行输出
      在这里插入图片描述

3.9. goto和标签

	Rem goto表示跳转到指定标签的位置 
	Goto XX 
	Rem XX标签标记位置 
	:XX
  • 用goto模拟while
	:While
	If %name% NEQ tom (
	Rem do some stuff
	Goto while
	)
  • 用goto模拟函数
	:Begin
	Set /p a=please enter:
	If %a%==2 Goto funcA
	If %a%==3 Goto FuncB
	Exit
	
	:FuncA
	Rem do some stuff
	Goto Begin:
	
	:FuncB
	Rem do some stuff
	Goto Begin:

3.10. Call子程序

  • 调用子代码
   CALL :label arguments
   :label   rem do so stuff
  • 调用批处理
 	call f:\test.bat 1 3
  • 获取参数
    call调用子程序可以带参数,参数默认以%0、%1来获取,参数可以进行扩展。
    在这里插入图片描述

3.11. 文件读写

  • 创建新文件并写入
    在这里插入图片描述
  • 追加到原文件写入
    在这里插入图片描述
  • 读文件
    在这里插入图片描述

3.12. 组合命令及管道

  • &
    Usage:第一条命令 & 第二条命令 [& 第三条命令…]
    用这种方法可以同时执行多条命令,而不管命令是否执行成功
  • &&
    Usage:第一条命令 && 第二条命令 [&& 第三条命令…]
    用这种方法可以同时执行多条命令,当碰到执行出错的命令后将不执行后面的命令,如果一直没有出错则一直执行完所有命令;
  • ||
    Usage:第一条命令 || 第二条命令 [|| 第三条命令…]
    用这种方法可以同时执行多条命令,当碰到执行正确的命令后将不执行后面的命令,如果没有出现正确的命令则一直执行完所有命令;
  • |
    Usage:第一条命令 | 第二条命令 [| 第三条命令…]
    将第一条命令的结果作为第二条命令的参数来使用,记得在unix中这种方式很常见。
  • >,>>
    将一条命令或某个程序输出结果的重定向到特定文件中, > 与 >>的区别在于,>会清除调原有文件中的内
    容后写入指定文件,而>>只会追加内容到指定文件中,而不会改动其中的内容。
  • < , >& , <&
    < 从文件中而不是从键盘中读入命令输入。
    >& 将一个句柄的输出写入到另一个句柄的输入中。
    <& 从一个句柄读取输入并将其写入到另一个句柄输出中。

3.13. 转义字符

批处理中有很多特殊的符号有特殊的用途,但是当我们想将这些特殊的符号当作原始的字符来用时,就需要特殊的处理,此时就需要转义字符^来标识。

  • 普通字符串
	:: 此时就需要转义,否则批处理执行错误
	Echo you ^& me
  • 命令字符串
	:: dir /ad /b /s “%~dp0”^|sort /r是命令字符串,所以|前必须加^转义为字符串
	for /f “delims=” %%a in (‘dir /ad /b /s "%~dp0"^|sort /r') do (
	  rd "%%a">nul 2>nul)

3.14. 退出及退出码

  • 批处理退出exit
    EXIT [/B] [exitCode]
    REM 退出当前cmd.exe,退出码为1.
    Exit /B 1
  • 批处理退出goto :EOF
    Goto :EOF退出到上一个调用,上一个调用可以是另外一个批处理中的call命令,也可以是当前批处理中的Call命令。
  • Windows中每一个进程退出都有退出码。
    Win32中有API,exit(exitCode)设置当前进程的退出码。
    Python中也能够通过os.exit(exitCode)来设置退出码。
    批处理中直接调用exe时,是阻塞的方式,等待exe结束之后,通过变量%errorlevel%获取。

3.15. 内置命令简介

  1. Cd设置当前目录
  2. Md创建文件夹
  3. Rd删除文件夹
  4. Ren重命名文件
  5. Copy拷贝文件
  6. Del删除文件
  7. Dir显示目录
  8. Move移动文件
  9. ASSOC指定或修改文件类型
  10. FTYPE显示修改文件关系类型
  11. Date/time显示当前日期和时间
  12. Attrib设置显示文件属性
  13. Choice选择判断
  14. Mode设置窗口
  15. Color设置窗口字体背景颜色
  16. title设置控制标题

3.16. 扩展模块简介

批处理的很多功能都通过扩展组件完成的,Windows的组件基本都提供了命令行操作。

  1. Find/findstr查找文本内容,支持正则表达式。
  2. Forfiles遍历文本内容,forfiles只支持ANSI格式的文本。
  3. Ipconfig获取IP相关的
  4. WMIC调用WMIC组件获取设备信息
  5. Devcon控制设备安装驱动等
  6. Xcopy拷贝文件扩展功能
  7. Format/diskpart格式化分区有关功能
  8. Schtasks定时计划功能
  9. Netstat配置网络IP协议等
  10. REG操作注册表
  11. Explorer打开文件夹
  12. Ping网络通信
  13. Shutdown关机命令
  14. Regsvr32注册反注册组件
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/171947.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • poe交换机供电原理图_poe供电原理详解

    poe交换机供电原理图_poe供电原理详解POE指的是在现有的以太网Cat.5布线基础架构不作任何改动的情况下,在为一些基于IP的终端(如IP电话机、无线局域网接入点AP、网络摄像机等)传输数据信号的同时,还能为此类设备提供直流电的技术.就是支持以太网供电的交换机。那么,POE交换机的供电原理及工作过程是什么呢?接下来我们就跟随飞畅科技的小编一起来详细了解下吧!POE交换机供电原理标准的五类网线有四对双绞线,但是在10MBASE-T和100MBASE-T中只用到其中的两对。IEEE802.3af允许两种用法,应用空闲脚供电时,4、5脚连

    2022年9月27日
    0
  • HTML登录界面的实现详解

    HTML登录界面的实现详解前言序锦前阵子参加学校的暑期实习,我作为项目负责人,除了进行统筹规划,整体运营以及进度安排等工作外呢,我还负责了前端模块,参与并编写了前端页面,在之前学过前端的基础上,本次参与前端的编写就比较容易了,我和另外一个伙伴我们选择了套用模板,在模板的基础上修改成我们想要的样子,这一点很重要,在这样一个很短的时间内,进行前端的编写,我们最好的选择就是进行模板的修改,但对于初学者来说,就算是…

    2022年5月11日
    72
  • Python语言——Python语言概述[通俗易懂]

    Python语言——Python语言概述[通俗易懂]Python语言概述计算机语言概述语言:交流工具,沟通媒介计算机语言:人和计算机交流的工具,翻译官Python语言简述Python是计算机语言的一种Python编程语言:代码:人类语言,

    2022年7月6日
    27
  • 查看linux执行的命令记录_history命令详解

    查看linux执行的命令记录_history命令详解前言我们每次敲打linux命令的时候,有时候想用之前用过的命令,一般情况下,我们都会按↑↓箭头来寻找历史的命令记录,那如果我想用1天前执行的某条命令,难道还要按↑100次?显示这样是不现实的,我们可

    2022年7月30日
    3
  • vmware workstation12永久激活密钥_vmware15最新密钥 “15” (VM)

    vmware workstation12永久激活密钥_vmware15最新密钥 “15” (VM)VMware虚拟机已升级至14版本,之前的12版本的秘钥已经无法使用,在此分享一下VMwareWorkstation14永久激活密钥:CG54H-D8D0H-H8DHY-C6X7X-N2KG6ZC3WK-AFXEK-488JP-A7MQX-XL8YFAC5XK-0ZD4H-088HP-9NQZV-ZG2R4ZC5XK-A6E0M-080XQ-04ZZG-YF08DZY5H0-D3Y8…

    2022年9月14日
    0
  • Mysql查看版本号的五种方式介绍

    Mysql查看版本号的五种方式介绍

    2021年10月18日
    53

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号