【BAT批处理】bat批量处理脚本介绍、变量、参数
bat批量处理脚本介绍、变量、参数、常用命令、命令返回值、应用示例
一、示例引入
在启动wps软件时,每次都必须执行(>前面内容表示DOS提示符):
C:>cd wps C:WPS>spdos C:WPS>py C:WPS>wbx C:WPS>wps
如果每次用WPS之前都这样执行一遍,其实是很麻烦的。
用批处理,就可以实现将这些麻烦的操作简单化,首先编写一个pichuli.bat批处理文件,内容如下:
@echo off c: cdwps spdos py wbx wps cd
以后,我们每次进入wps,只需要运行pichuli这个批处理文件即可。
使用BAT(Batch)批处理,是为了减少我们在工作中冗长重复的步骤。
二、bat批量处理介绍
bat (批处理文件类型):批处理文件,在DOS和Windows系统中使用,.bat文件是可执行文件,由一系列命令构成,其中可以包含对其他程序的调用。
这个文件的每一行都是一条DOS命令(大部分时候就好像我们在DOS提示符下执行的命令行一样),可以使用DOS下的Edit或者Windows的记事本(notepad)等任何文本文件编辑工具创建和修改批处理文件。
批处理(Batch),也称为批处理脚本。批处理就是对某对象进行批量的处理,通常被认为是一种简化的脚本语言,它应用于DOS和Windows系统中。批处理文件的扩展名为bat 或cmd。
目前比较常见的批处理包含两类:DOS批处理和PS批处理。
PS批处理是基于强大的图片编辑软件Photoshop的,用来批量处理图片的脚本;而DOS批处理则是基于DOS命令的,用来自动地批量地执行DOS命令以实现特定操作的脚本。
更复杂的情况,需要使用if、for、goto等命令控制程式的运行过程,如同C、Basic等高级语言一样。如果需要实现更复杂的应用,利用外部程式是必要的,这包括系统本身提供的外部命令和第三方提供的工具或者软件。
批处理程序虽然是在命令行环境中运行,但不仅仅能使用命令行软件,任何当前系统下可运行的程序都可以放在批处理文件中运行。
三、关于变量
1、变量的类型
批处理中的变量基本上是万能的,可以储存各种各样的数据,不过用来计算时会发现变量类型转为了int,数值的极端范围为 [-2147483648,2147483647]。
2、变量的命名
批处理的变量命名没有什么限制,不过建议命名还是遵守标准的命名方法,不然像这样的代码是很麻烦的。
@Echo Off Set IF=Set %IF% lF=Goto :IF IF %IF%==IF %lF% IF
正是因为变量的名称是可以*调配的:数字、字母、甚至汉字都可以变成变量名样。
3、变量的扩展(使用变量)
扩展,可以理解为显示出这个的值,如果想要使用这个变量的值一般情况下都要扩展
扩展方式:%变量%或!变量!
其中!变量!是延迟扩展,需要加上SetLocal EnableDelayedExpansion语句才能够实现,延迟扩展对于新手来说是一个很难理解的东西,就这么说吧,当变量在一个语句的内部受到了改变,而在这个改变之后又要输出,那么必须要延迟扩展,这个牵扯到了奇奇怪怪的预处理机制,不详解了。
用连接符号连起来的语句,if,for和它们后面括号内的内容都是属于一个语句
例1:
@echo off set num=10 set num=100 & echo %num% echo %num% echo 虽然已经将num的值更改为100,但由于没有延迟扩展,所以值仍为10,不过在下一个语句num的值就改变了 pause>nul
例2:
@echo off SetLocal EnableDelayedExpansion set num=10 set num=100&echo !num! echo 现在两个num的值一样了 echo %num% pause>nul
变量在扩展过程中还可以做一点手脚
例3:
set str=1234567890 echo %str:~0,5% echo %str:~1,5% echo %str:~-5% echo %str:~5,-2% echo %str:7890=54321% pause>nul
这就是对字符串的处理,这个是批处理的特性,叫“变量延迟”
四、关于参数
参数在批处理的表达是%0,%1,%2....%9 ,以及全部参数%*(不包括%0)
%0的初始量是批处理本身路径,类似%~f0
一般只能取前九个参数,除非使用%*
shift命令允许获取后面的参数
格式:shift [/n]
n为1~8的数
shift 会使%0变成%1,%1变成%2……%9变成原来的第10个参数(不推荐)
一般使用shift /1,将会从%1开始替换,保留原%0
注意:call标签时参数也是可用的,而且当返回时参数将变回原来的
例子:
@echo off call :标签 arg1 arg2 echo %1 ::会显示回显已打开 echo %2 exit :标签 echo %1 ::这时会显示arg1 echo %2 ::这时会显示arg2 exit /b
声明:本网站为“个人非营利性”网站,仅是博主与热心网友收集整理提供的经验记录和学习内容!本站文章图片来源于网络和AI,如有问题,可联系本站删除。
网站初心:一些棘手的、偏门的问题,能比较方便地在一个网站上查询、解决。
