window bat批处理脚本

embedded/2024/9/23 0:54:41/

参考:
https://www.cnblogs.com/dirgo/p/18108455
https://blog.csdn.net/AnChenliang_1002/article/details/131288871
https://www.cnblogs.com/jingxian666/p/16814375.html

什么是BAT

全称即Batch,批处理,是一类可执行的文本文件,扩展名为.bat

注意:BAT脚本文件为ANSI编码(否则出现中文乱码)

常用命令与语法

1、注释

rem注释时,不执行后面的语句,但会显示;

:: 注释内容(第一个冒号后也可以跟任何一个非字母数字的字符)

%注释内容%(可以用作行间注释,不能出现重定向符号和管道符号)

@echo off
rem 注释1
echo 11
::注释2
echo 22
%注释3%
echo 33pause::结果
11
22
33
请按任意键继续. . .

2、开启关闭回显

@置于语句前则该条语句不会回显(无视echo on)

echo off关闭回显功能,直到出现echo on,但其本身会回显,往往和@一起使用,即@echo off(关闭所有回显功能)

echo 11pause::结果
C:\Users\ab225\OneDrive\桌面>echo 11
11C:\Users\ab225\OneDrive\桌面>pause
请按任意键继续. . .@echo off
echo 11pause::结果
11
请按任意键继续. . .

1、help/?

都可以用来查看某个指令的帮助文档。
语法格式:指令 /?或者是help 指令
如title /?,就是打印title这个指令的帮助文档。
需要注意,单独执行help,会打印出支持的所有指令以及简单的功能说明。

2、title

语法格式:title window_name
作用设置当前的cmd窗口标题

3、color

语法格式:color 16进制颜色格式
用来设置批处理控制台的背景和字体颜色,颜色属性由两个十六进制数字组成,第一个数字表示背景颜色,第二个数字表示字体颜色。
如color 07表示常规的黑底白字。

每个数字可以为以下值:
0=黑色
1=蓝色
2=绿色
3=湖蓝色
4=红色
5=紫色
6=黄色
7=白色
8=灰色
9=淡蓝色
A=淡绿色
B=淡浅绿色
C=浅红色
D=淡紫色
E=淡黄色
F=亮白色

4、mode

一般用来调整当前命令行窗口的大小、代码页等。
如:mode con cols=113 lines=15 & color 0A
就是调整窗口的长是113个字符,宽是15个字符,顺带给窗口换了换颜色,一般会放在最前面执行。
可以通过在cmd窗口中输入mode /?来查看详细功能。

5、echo

语法格式:
echo [{on|off}] [message]
on:允许批处理文件在处理时回显命令;
off:不允许。
在调用了echo off之后,接下来执行的所有命令都将不会在前台打印出命令本身。

使用on

::代码
echo on
dir
echo 111111::输出
C:\Users\ab225\OneDrive\桌面>echo on
C:\Users\ab225\OneDrive\桌面>dir驱动器 C 中的卷是 Windows-SSD卷的序列号是 4CF7-0463
C:\Users\ab225\OneDrive\桌面 的目录
2024/08/03  13:08    <DIR>          .
2024/05/07  22:35    <DIR>          ..
2024/08/03  13:09                34 1 - 副本.bat
2024/07/24  22:51                62 1.sql
2024/07/08  10:08             5,781 11.ini
2023/04/04  20:43                30 122.185.bat
2024/05/20  10:04                28 14.17 - 副本.bat
2024/07/24  22:15             9,686 2.sql
2022/03/10  09:00                29 200.14.bat
2023/06/01  22:33               651 aardio.lnk
...(省略)43 个文件         52,827 字节4 个目录 27,495,849,984 可用字节C:\Users\ab225\OneDrive\桌面>echo 111111
111111

使用off
可以看到,除了第一行命令外,其他命令本身都没有被打印出来

echo off
dir
echo 111111
pause::输出C:\Users\ab225\OneDrive\桌面>echo off驱动器 C 中的卷是 Windows-SSD卷的序列号是 4CF7-0463C:\Users\ab225\OneDrive\桌面 的目录2024/08/03  13:08    <DIR>          .
2024/05/07  22:35    <DIR>          ..
2024/08/03  13:14                35 1 - 副本.bat
2024/07/24  22:51                62 1.sql
2024/07/08  10:08             5,781 11.ini
2023/04/04  20:43                30 122.185.bat
2024/05/20  10:04                28 14.17 - 副本.bat
2024/07/24  22:15             9,686 2.sql
2022/03/10  09:00                29 200.14.bat
...(省略)43 个文件         52,828 字节4 个目录 27,497,222,144 可用字节
111111

6、@

@可以加在一行命令的行首位置,表示禁止当前行命令本身回显在屏幕上
如:@echo on
相比使用echo on|off来控制整个脚本层级的回显,@可以更方便的控制行级的回显。

echo off
echo 111111
pause:: 结果
C:\Users\ab225\OneDrive\桌面>echo off
111111
请按任意键继续. . .::使用 @
@echo off
echo 111111
pause::结果
111111
请按任意键继续. . .

7、pause

用于暂停批处理的执行,由用户决定是否继续执行。
会显示"按任意键继续。。“,同时卡住不再继续执行,除非用户点击了任意键之后,才会继续执行。
如果你不想让界面显示"按任意键继续。。”,但还想要让界面卡住不向下执行,则可以结合重定向符来实现

::使用 @
@echo off
echo 111111::结果
111111
(窗口一闪而过)::使用pause
@echo off
echo 111111
pause::结果
111111
请按任意键继续. . .::不显示 “请按任意键继续. . .”
@echo off
echo 1
pause
echo 2
pause > nul
echo 3::结果:显示1后,按任意键,再显示2,再按任意键,显示3,然后窗口迅速关闭
1
请按任意键继续. . .
2
3

8、call

语法:
CALL [path] filename[.bat] [arguments]
[path] 是可选的,指定要调用的文件的路径如果与主批处理文件在同一目录下,则可以省略);
[filename]是要调用的批处理文件的名称;
[arguments] 是传递给被调用脚本的参数(如果有的话)。

1、调用其他的批处理文件
语法是:
call xxx.bat
①、无参调用

:: 主批处理文件(MainBatch.bat)
@ECHO OFF
ECHO 主批处理文件开始执行。
CALL SubBatch.bat
ECHO 主批处理文件执行完毕。
PAUSE:: 子批处理文件(SubBatch.bat)
@ECHO OFF
ECHO 子批处理文件被调用。
PAUSE::输出
主批处理文件开始执行。
子批处理文件被调用。
请按任意键继续. . .批处理文件执行完毕。
请按任意键继续. . .

②、带参调用


:: 主批处理文件(MainBatch.bat)
@ECHO OFF
ECHO 主批处理文件开始执行。
CALL SubBatch.bat Arg1 Arg2
ECHO 主批处理文件执行完毕。
PAUSE:: 子批处理文件(SubBatch.bat)
@ECHO OFF
ECHO 子批处理文件被调用,参数1=%1,参数2=%2
PAUSE::输出
主批处理文件开始执行。
子批处理文件被调用,参数1=Arg1,参数2=Arg2
请按任意键继续. . .批处理文件执行完毕。
请按任意键继续. . .

2、定义和调用批处理子例程

:: 主批处理文件(MainBatch.bat)
@ECHO OFF
ECHO 主批处理文件开始执行。
CALL :RunSubBatch Arg1 Arg2
ECHO 主批处理文件执行完毕。
PAUSE:: 子批处理文件中的标签调用
:RunSubBatch
ECHO 子例程被调用,参数1=%1,参数2=%2
GOTO :EOF::结果
主批处理文件开始执行。
子例程被调用,参数1=Arg1,参数2=Arg2
主批处理文件执行完毕。
请按任意键继续. . ..

1和2 可以一起用

3、使用CALL实现函数式编程

通过使用标签(Labels)和GOTO命令,我们可以在批处理中模拟函数的调用和返回。

@ECHO OFF
CALL :MyFunction
PAUSE
GOTO :EOF:MyFunction
(
ECHO 这是一个使用CALL实现的"函数"echo "多行命令需要用括号,没有则不需要"
):: 结果
这是一个使用CALL实现的"函数""多行命令需要用括号,没有则不需要"
请按任意键继续. . .

http://www.ppmy.cn/embedded/90184.html

相关文章

Stable Diffusion绘画 | 文生图设置详解—随机种子数(Seed)

随机种子数&#xff08;Seed&#xff09; Midjourney 也有同样的概念&#xff0c;通过 --seed 种子数值 来使用。 每次操作「生成」所得到的图片&#xff0c;都会随机分配一个 seed值&#xff0c;数值不同&#xff0c;生成的画面就会不同。 默认值为 -1&#xff1a;每次随机分…

数据结构与算法--队列

文章目录 提要队列的定义队列的认识队列的应用队列的抽象数据类型队列的存储结构队列的链式存储结构与实现链队的进队和出队操作链队的数据类型初始化链队列入队操作出队操作队列的顺序存储结构与实现顺序队列的假溢出问题队列上溢循环队列循环队列取下一相邻单元下标运算队满与…

24年电赛——自动行驶小车(H题)基于 CCS Theia -陀螺仪 JY60 代码移植到 MSPM0G3507(附代码)

前言 只要搞懂 M0 的代码结构和 CCS 的图形化配置方法&#xff0c;代码移植就会变的很简单。因为本次电赛的需要&#xff0c;正好陀螺仪部分代码的移植是我完成的。&#xff08;末尾附全部代码&#xff09; 一、JY60 陀螺仪 JY60特点 1.模块集成高精度的陀螺仪、加速度计&…

PHP中的魔术常量(如__FILE__,__LINE__)及其用途

在PHP中&#xff0c;魔术常量是一组预定义的常量&#xff0c;它们会根据它们使用的上下文环境而改变其值。这些常量以两个下划线字符开始和结束。魔术常量提供了有关代码执行环境的有用信息&#xff0c;例如当前文件的路径、当前行号等。 以下是几个常用的PHP魔术常量及其用途…

安装MongoDB UI客户端工具:mongodb-compass-1.40.2-win32-x64.msi

文章目录 1、安装 mongodb-compass-1.40.2-win32-x64.msi2、安装后配置链接地址&#xff1a; 1、安装 mongodb-compass-1.40.2-win32-x64.msi 2、安装后配置链接地址&#xff1a;

假如目标检测-终榜R25-安全AI挑战者计划第五期:伪造图像的对抗攻击

关联比赛: 【长期赛】安全AI挑战者计划第五期&#xff1a;伪造图像的对抗攻击 一、主要任务 比赛采用的数据为大量伪造的证书文档类图像。任务是通过提供的训练集学习出有效的检测算法&#xff0c;对测试集的伪造图像进行篡改定位。 二、算法思路 2.1 核心方法 转换为目标…

基于MSER和HOG特征提取的SVM交通标志检测和识别算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1 MSER 4.2 HOG特征提取 4.3 SVM 5.算法完整程序工程 1.算法运行效果图预览 (完整程序运行后无水印) 2.算法运行软件版本 matlab2017b 3.部分核心程序 &#xff08;完整版代码包含中…

基于JAVA的商品供应管理系统-JavaEE

点击下载源码 基于JAVA的商品供应管理系统-JavaEE 摘 要 当今社会己进入信息社会时代&#xff0c;信息己经受到社会的广泛关注&#xff0c;被看作社会和科学技术发展的三大支柱&#xff08;材料、能源、信息&#xff09;之一。信息是管理的基础&#xff0c;是进行决策的基本依…