0
点赞
收藏
分享

微信扫一扫

批处理简述

Python芸芸 2022-01-12 阅读 144

批处理简述

1.批处理定义
批处理(Batch),也称为批处理脚本。顾名思义,批处理就是对某对象进行批量的处理,通常被认为是一种简化的脚本语言,它应用于DOS和Windows系统中
批处理文件的扩展名为bat 。
比较常见的批处理包含两类:DOS批处理和PS批处理。PS批处理是基于微软的强大的PowerShell的,用来批量处理一些任务的脚本;而DOS批处理则是基于DOS命令的,用来自动地批量地执行DOS命令以实现特定操作的脚本。更复杂的情况,需要使用if、for、goto等命令控制程式的运行过程,如同C、Basic等高级语言一样。如果需要实现更复杂的应用,利用外部程式是必要的,这包括系统本身提供的外部命令和第三方提供的工具或者软件。批处理程序虽然是在命令行环境中运行,但不仅仅能使用命令行软件,任何当前系统下可运行的程序都可以放在批处理文件中运行。

2.批处理命令简介

  • echo 命令

打开回显或关闭请求回显功能,或显示消息。如果没有任何参数,echo命令将显示当前回显设置。
语法:

echo [{on|off}] [message]

示例:

@echo off
echo hello world

在实际应用中我们会把这条命令和重定向符号(也称为管道符号,一般用>,>>)结合来实现输入一些命令到特定的文件中,例如:

echo test>test.txt

命令会创建一个名为"test"的文本文件,并将"test"输入到文本文件中。

**在批处理文件的开头,通常有:

@echo off

原因是"@"可以将本行的命令关闭回显,搭配"echo off"就可以不显示"echo off"的回显了。**

  • rem 命令

注释命令,类似于在C语言中的/--------/,它并不会被执行,只是起一个注释的作用,只有在编辑批处理时才会被看到,主要用于方便修改。
"::" 也具有rem的功能
但"::“和rem还是有区别的,当关闭回显时,rem和::后的内容都不会显示。但是当打开回显时,rem后的内容会显示出来,然而"::"后的内容仍然不会显示。
@rem的效果跟”::"一样。
语法:
Rem [注释内容]
示例:

Rem 你好`。
  • rem vs. ::
rem 123
:: 123
pause

效果如下图:
在这里插入图片描述

  • pause 命令

暂停命令。运行 Pause 命令时,将显示下面的消息:
Press any key to continue. . .(或:请按任意键继续. . .)
示例:

@echo off
 
:begin
copy G:*.* d:\back
echo 请插入另一张光盘...
 
pause
goto begin

在这个例子中,驱动器 G 中磁盘上的所有文件均复制到d:\back中。显示的注释提示您将另一张光盘放入驱动器 G 时,pause 命令会使程序挂起,以便您更换光盘,然后按任意键继续处理。
此命令还可以和echo命令配合使用达到自定义暂停的提示文本,如:

echo 请按下任意键来退出...
pause >nul

这段代码会输出:
请按下任意键来退出…

  • call 命令

从一个批处理程序调用另一个批处理程序,并且不终止父批处理程序。call命令接受用作调用目标的标签。如果在脚本或批处理文件外使用 Call,它将不会在命令行起作用。
语法:

call [路径文件名] [标签]]

参数:

[Drive:][Path] FileName

指定要调用的批处理程序的位置和名称。
除此之外,call命令还可以调用批处理的标签行,如

call :startbat

此代码会调用此批处理内名为startbat的标签行

start 命令

调用外部程序,所有的DOS命令和命令行程序都可以由start命令来调用。
如:

start calc.exe

即可打开Windows的计算器。

常用参数:

参数名描述
MIN开始时窗口最小化
SEPARATE在分开的空间内开始 16 位 Windows 程序
HIGH在 HIGH 优先级类别开始应用程序
REALTIME在 REALTIME 优先级类别开始应用程序
WAIT启动应用程序并等候它结束
parameters这些为传送到命令/程序的参数

执行的应用程序是 32-位 GUI 应用程序时,CMD.EXE 不等应用程序终止就返回命令提示。如果在命令
脚本内执行,该新行为则不会发生

  • goto 命令

跳转命令。程序指针跳转到指定的标签,从标签后的第一条命令开始继续执行批处理程序。
语法:

goto label 

(label是参数,指定所要转向的批处理程序中的行。)
示例:

:1
start
goto 1

运行以上这段命令,就会打开很多个窗口。这段命令的意思是,先用start命令打开窗口,再用goto 1命令转到1标签,即第一行后面的命令。注意标签名字前面要加上英文的冒号。
标签的名字可以随便起,但是最好是有意义的字母啦,字母前加个:用来表示这个字母是标签,goto
命令就是根据这个:来寻找下一步跳到哪里。最好有一些说明这样别人看起来才会理解你的意图啊。

  • set 命令

显示、设置或删除变量。
显示变量:set 或 set s 前者显示批处理当前已定义的所有变量及其值,后者显示所有以s开头的变量及值。
设置和调用变量:例如set aa=abcd(也可写作set “aa=abcd”),就是把aa定义为abcd。如果要调用这个变量,就把aa两边加上个百分号。
示例:

set aa=abcd
echo %aa%
pause

运行这段命令就会显示“abcd”。
删除变量:"set aa="此句命令即可删除变量aa。若变量aa已被定义,则删除变量aa;若aa尚未定义,则此句命令无实质意义。
需要说明的是,批处理中的变量是不区分类型的,不需要像C语言中的变量那样还要区分int、float、char等。比如执行set aa=345后,变量aa的值既可以被视为数字345,也可以被视为字符串345。
set命令具有扩展功能,如用作交互输入、字符串处理、数值计算等,属于高级命令范畴。

  • assoc命令

添加文件扩展名

语法:

assoc [File extension] [Annotation]

示例:

@echo off
assoc .txp=错误

未完待续。。。

举报

相关推荐

0 条评论