批处理.bat脚本入门详细使用教程

批处理简介

批处理(Batch),也称为批处理脚本。顾名思义,批处理就是对某对象进行批量的处理,通常被认为是一种简化的脚本语言,它应用于 DOS 和 Windows 系统中。批处理文件的扩展名为 bat(或 cmd)。通常我们指定的批处理指 DOS批处理脚本

基本语法

 注释

rem 带@echo off,所有的执行的命令都不显示了,显示执行命令后的结果
@echo off
chcp 65001

:: 这里的::为注释符,下面的echo显示文字
echo "批处理使用::注释"
rem 使当前程序暂停,可以理解为cmd窗口暂停,方便查看信息
pause
  • 当关闭回显时,rem和::后的内容都不会显示。
  • 当打开回显时,rem 后的内容会显示出来,然而::后的内容仍然不会显示。
  • chcp 65001 :这行命令会将命令行窗口的编码切换到UTF-8

 变量

[设置变量]
格式:set 变量名=变量值
详细:被设定的变量以%变量名%引用

::声明变量
set myVariable=value
::引用变量
echo %myVariable%

:: 定义数字变量
set /a n=0

rem 定义字符串变量
SET myString=Hello, World!
SET myString="Hello, World!"
echo %myString%
rem 如果变量名包含空格,需要使用引号,如:
SET "myString=Hello, World!"

:: 定义数组变量
set arr=1 2 3 4 5 6

::使用set /p命令从用户那里读取输入并将其存储到变量中
set /p myVariable1=Please enter a value:  
echo %myVariable1%

::删除变量
set /d myVariable

 运算

rem 加减乘除运算
set /a z=10*5 乘法
set /a z=10/5 除法
set /a z=10+5 加法
set /a z=10-5 减法
set /a z=10%%3 取余
echo %z%

rem大于、小于等
set /a a=1,b=2
if %a% equ %b% (echo yes) else (echo no)
if %a% neq %b% (echo yes) else (echo no)
if %a% lss %b% (echo yes) else (echo no)
if %a% leq %b% (echo yes) else (echo no)
if %a% gtr %b% (echo yes) else (echo no)
if %a% geq %b% (echo yes) else (echo no)

::重定向操作
echo "hello world" >>a.txt

rem 多名命令运算
::第一个命令错误不会执行第二个命令
ipconfig && net user
::第一个命令执行成功不会执行第二个命令
ipconfig || net user

rem 管道符号
::第一个命令A的输出当做第二个命令B的输入
dir | find ".txt"

()                        分组

! ~                        一元运算符(逻辑非、按位非、取负)

* / %                      算数运算符(乘、除得商、除得余数,即取余)

+ -                         算数运算符(加、减)

<< >>                    逻辑移位(左移一位、右移一位)

&                           按位“与”

^                           按位“异”

|                            按位“或”

= *= /= %= += -=   赋值

&= ^= |= <<= >>=  赋值

,表达式分隔符(set可一次处理多个表达式)

 函数

函数格式:

@echo off  

::开始调用函数  
call:myBatFunc  

echo "run end"
pause

::函数部分开始  
:myBatFunc    - here starts my function identified by it`s label  
echo.  here the myBatFunc function is executing a group of commands  
echo.  it could do a lot of things
::函数结束标志   
goto:eof 

 函数传参

@echo off

setlocal enabledelayedexpansion
call:main
pause

:getStringLength
::第一个函数参数:%~1;第二个则使用%~2;
:: %~1:当参数以引号开头时,%~1会自动将引号删除;%1不会自动将引号删除
set "string=%~1"
set "length=0"
 
:: 计算字符串长度
for /L %%i in (1,1,254) do (
    set /a "length=!length!+1"
    set "char=!string:~%%i,1!"
    if "!char!"=="" goto for_end
)
:for_end
echo Length of string is: %length%
goto:eof 

:main
call :getStringLength Hello
call :getStringLength "Hello, World!"

goto:eof 

 函数返回值

(1)最常用的做法是在函数中将该值保存在全局变量中,调用结束后,直接用该全局变量;参考如前面的函数传参,直接通过全局变量length返回长度结果

(2)通过引用返回值,调用者通过传递一个变量给函数来存储返回值


set "aStr= SETLOCAL TEST" 
set "var1= return TEST" 
call:myGetFunc var1 
echo var1 after : %var1%
echo var1 aStr : %aStr%

pause

:myGetFunc    - passing a variable by reference  
::保证局部变量和全局变量不冲突;SETLOCAL命令能让处理器当做是局部变量
SETLOCAL  
set "aStr=reference"  
set "%~1=%aStr%" 
ENDLOCAL  

goto:eof  

  if判断

操作符(不区分大小写)描述全称
equ等于equal
neq不等于no equal
lss小于less than
leq小于等于leq less than or equal
gtr大于greater than
geq大于等于geq greater than or equal
@echo off
set inputValue=23
::比较表达式和()之间必须有空格
if %inputValue%==23 (echo %inputValue%等于23) 
if %inputValue% equ 23 (echo %inputValue%等-于23)

if %inputValue% gtr 100 (
	echo 大于100
) else if %inputValue% gtr 10 (
	echo 大于10
) else if %inputValue% gtr 0 (
	echo 大于0
)
pause

参本文的 《以下为批处理入门实操教程》的《条件判断结构》

 for循环

参本文的 《以下为批处理入门实操教程》的《循环结构》

set arr=1 2 3 4 5 6
for %%a in (%arr%) do ( 
   echo %%a 
)
for /l %%x in (1,1,10) do (
    echo 变量 x 的值是 %%x
)
::/f会默认以每一行来作为一个元素,会读出a.txt中的内容。
for /f %%i in (a.txt) do echo %%i

字符串操作

字符串切片

@echo off
chcp 65001

set string=abcdefghijklmnopqrstuvwxyz0 12 3456789
echo 截取前5个字符:
echo %string:~0,5%

echo 截取最后5个字符:
echo %string:~-5%

echo 截取第一个到倒数第6个字符:
echo %string:~0,-5%

echo 从第4个字符开始,截取5个字符:
echo %string:~3,5%

echo 从倒数第14个字符开始,截取5个字符:
echo %string:~-14,5%

echo 当前时间是:%time% 即 %time:~0,2%点%time:~3,2%分%time:~6,2%秒%time:~9,2%厘
pause

替换字符串

@echo off
::创建了一个变量VAR,它的值是“hello”。然后,使用“ell” 替换为 “ipp”。因此,脚本将输出 “hippo”
set VAR=hello
set VAR=%VAR:ell=ipp%
echo %VAR%

字符串拼接

set string1=Hello
set string2=World
set combined1=%string1% %string2%
set combined2=%string1%,%string2%
set combined3=%string1%%string2%
set combined4=aaa%string1%bbb%string2%ccc
set "combined5=%string1%^&%string2%"
echo %combined1%
echo %combined2%
echo %combined3%
echo %combined4%
echo %combined5%

字符串分割

  •  delims:告诉for每一行应该拿什么作为分隔符,默认的分隔符是空格和tab键
  • tokens:通过delims将每一行分为更小的元素时,由tokens来控制要取哪一个或哪几个

假如文件a.txt中有如下内容:

第1行第1列 第1行第2列 第1行第3列
第2行第1列 第2行第2列 第2行第3列
第3行第1列 第3行第2列 第3行第3列

【1】delims这个参数,=后面有一个空格,意思是再将每个元素以空格分割,默认是只取分割之后的第一个元素 

for /f "delims= " %%i in (a.txt) do echo %%i
::显示的结果是:
::第1行第1列
::第2行第1列
::第3行第1列

【2】想要每一行的第二列元素;如果要显示第三列,那就换成tokens=3

for /f "tokens=2 delims= " %%i in (a.txt) do echo %%i
::显示结果:
::第1行第2列
::第2行第2列
::第3行第2列

【3】 如果要显示第二列和第三列,则换成tokens=2,3或tokens=2-3

for /f "tokens=2,3 delims= " %%i in (a.txt) do echo %%i %%j
::用%%i来替换第二列,用%%j来替换第三列
::执行结果为:
::第1行第2列 第1行第3列
::第2行第2列 第2行第3列
::第3行第2列 第3行第3列

【4】skip就是要忽略文件的前多少行

for /f "skip=2 tokens=*" %%i in (a.txt) do echo %%i
::结果为:
::第3行第1列 第3行第2列 第3行第3列

【5】同一行字符串分割为多份

@echo off
setlocal enabledelayedexpansion
 
:: 定义要分割的字符串和分隔符
set input_string=a,b,c,d,e
set separator=,
 
:: 分割字符串,tokens=1,2,3,4,5对应分割出五份%%a,%%b,%%c,%%d,%%e
for /F "tokens=1,2,3,4,5 delims=%separator%" %%a in ("%input_string%") do (
    set part1=%%a
    set part2=%%b
    set part3=%%c
    set part4=%%d
    set part5=%%e
)
 
:: 输出分割后的字符串
echo Part1: !part1!
echo Part2: !part2!
echo Part3: !part3!
echo Part4: !part4!
echo Part5: !part5!
endlocal
 
pause

扩充字符串

“扩充”意思就是对表示文件路径的字符串进行特殊的处理;

@echo off
chcp 65001
echo 完全路径:%0
echo 去掉引号:%~0
echo 所在分区:%~d0
echo 所处路径:%~p0
echo 文件名:%~n0
echo 扩展名:%~x0
echo 文件属性:%~a0
echo 修改时间:%~t0
echo 文件大小:%~z0
pause

 

更多功能参考本文:《cd /d %~dp0 命令解释》

find操作

find

find的基本操作是在文件中搜索字符串

find "111" test.txt
::管道符号第一个的输出做第二个条件输入
type test.txt|find "111"

 findstr

findstr 是find的扩展,功能更强大,格式:findstr 参数 字符串 路径\文件名

【1】在指定文本中查找指定字符串

findstr "hello" a.txt

【2】指定搜索不分大小写

findstr /i "Hello" a.txt

【3】显示要查找的字符具体在文本哪一行

findstr /n /i "hello" a.txt

【4】 查找包含了指定字符的文本

findstr /m /i "hello" *.txt

【5】查找以指定字符开始或结尾的文本行

findstr /b /i "hello" a.txt
::或者,这里的^可不是转义符,而是正则表达式中的“匹配行开始的位置
findstr  /i "^hello" a.txt

 【6】如何查找以hello(忽略大小写)结尾的行?

findstr /e /i "hello" a.txt
::或者
findstr /e /i "hello$" a.tx

【7】查找与指定字符完全匹配的行

findstr /n /i "^hello$" a.txt
::或者
indstr /n /i /x "hello" a.txt

【8】查找不包含指定字符的行

findstr /vni "hello" a.txt

【9】如何查找当前目录及子目录下文件内容中包

findstr /imd:520;编程; ".*" "*.txt"

含某字符串的文件名?

findstr /ms “test” *.txt

【10】 用文本指定要查找的文件 And 用文本制定要查找的字符串

::string.txt这个文本中指定findstr要查找的字符串
findstr /ig:string.txt a.txt

【11】搜索一个完全匹配的句子

findstr /ic:"hello there" a.txt

【12】搜索一个完全匹配的词

findstr "far" a.txt
::只要求显示含有“far”这个单词的行
findstr "\<far\>" a.txt

 【13】指定要查找的目录:查找在520、编程目录中所有包含任意字符的txt文件

findstr /imd:520;编程; ".*" "*.txt"

【14】 统计字符,.*为正则表达式的内容,表示任意行,包含空行

findstr /o .* test.txt

【15】 以指定颜色显示文件名,cmd窗口:color /?查看颜色和文字大小

findstr /a:21 .* "test*"

常见命令

1、echo

打开或关闭回显功能,或显示消息;参本文的 《批处理bat实用案列》的《@echo和echo的区别》

2、rem

注释命令;参本文的 《基本语法》的《注释》

3、pause

运行 Pause 命令时,将显示cmd窗体的echo和运行的消息

4、call

(1)从一个批处理程序调用另一个批处理程序,并且不终止父批处理程序。

(2)调用函数

参考参本文的 《基本语法》的《函数》使用

5、start

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

start notepad.exe

6、goto

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

参考参本文的 《基本语法》的《函数》使用

7、set

显示、设置或删除变量;《基本语法》的《变量》使用

8、find

在文件中搜索字符串,参考参本文的 《基本语法》的《find操作》使用

9.date和time

TIMEOUT /T 5
echo %date%
echo %time%

 10.pushd 和 popd

cd /d d:\mp4 	::更改当前⽬录为 d:\mp4
pushd c:\mp3 	::保存当前⽬录,并切换当前⽬录为 c:\mp3
popd 			::恢复当前⽬录为刚才保存的 d:\mp4
rem 读取当前目录并进入当前目录
set "rootdir=%~dp0"
pushd "%rootdir%"
 
copy %rootdir%\111\test.txt %rootdir%\222

11.timeout

::倒计时5秒,cmd窗口关闭
TIMEOUT /T 5

12.clr清屏

13.type显示文件内容

type c:\boot.ini    #显示指定文件的内容,程序文件一般会显示乱码
type *.txt          #显示当前目录里所有.txt文件的内容

常见符号

参本文的 《基本语法》的《运算》,了解部分符号具体用法

1、回显屏蔽 @

参考本文的《批处理bat实用案列》的《@echo和echo的区别》

2、重定向1 >;与>>

echo aaaaa>>a.txt

和echo aaaaa>a.txt的区别在于:

若a.txt已经存在时,>>会追加在a.txt文本中;若a.txt不存在时,两者没有区别。

3、重定向2 <

set /p ifo=<a.txt

echo 【 从文件a.txt获得的输入信息 】

echo %ifo%

4、管道符号 |

Syntax:command_1|command_2

将command_1的输出重定向为command_2的输入。

5、转义符 ^

将特殊符号转化为一般符号,即剥离特殊符号的特殊地位。特殊符号指:| & > <

比如,如果我们想输出符号“>;”,直接用命令 echo > 是不行的,必须修改为 echo ^>;。其余几个特殊符号类似需要有同样的处理

6、逻辑命令符

逻辑命令符包括:&、&&、||

&         :它的作用是用来连接n个DOS命令,并把这些命令按顺序执行,而不管是否有命令执行失败;

&&      :当&&;前面的命令成功执行时,执行&&;后面的命令,否则不执行;

||         :当||前面的命令失败时,执行||后面的命令,否则不执行。

文件网络系统类命令

文件目录

文件夹管理:

cd 显示当前目录名或改变当前目录。

md 创建目录。

rd 删除一个目录。

dir 显示目录中的文件和子目录列表。

tree 以图形显示驱动器或路径的文件夹结构。

path 为可执行文件显示或设置一个搜索路径。

copy 复制文件和目录树。

文件管理:

type 显示文本文件的内容。

copy 将一份或多份文件复制到另一个位置。

del 删除一个或数个文件。

move 移动文件并重命名文件和目录。(Windows XP Home Edition中没有)

ren 重命名文件。

replace 替换文件。

attrib 显示或更改文件属性。

find 搜索字符串。

fc 比较两个文件或两个文件集并显示它们之间的不同

参本文的 《以下为批处理入门实操教程》的《目录与文件命令》

网络命令

ping 进行网络连接测试、名称解析

ftp文件传输

net 网络命令集及用户管理

telnet远程登陆

ipconfig显示、修改TCP/IP设置

msg 给用户发送消息

arp 显示、修改局域网的IP地址-物理地址映射列表

参本文的 《以下为批处理入门实操教程》的《网络相关命令》

系统管理

at 安排在特定日期和时间运行命令和程序

shutdown立即或定时关机或重启

tskill 结束进程

taskkill结束进程(比tskill高级,但WinXPHome版中无该命令)

tasklist显示进程列表(Windows XP Home Edition中没有)

sc 系统服务设置与控制

reg 注册表控制台工具

powercfg控制系统上的电源设置

对于以上列出的所有命令,在cmd中输入命令+/?即可查看该命令的帮助信息。如find /?

参本文的 《以下为批处理入门实操教程》的《基本命令格式》

批处理相关知识

环境变量

什么是环境变量:

环境变量是操作系统中用于存储系统配置信息的一种机制;
它们是一组动态的值,可以影响操作系统和应用程序的行为。
环境变量通常包含一些重要的路径信息,例如可执行文件的路径、库文件的路径等。

为什么需要环境变量:

      比如你想在任意cmd窗口,输入armcc(对应armcc.exe工具),都能显示提示信息;那么就需要配置环境变量;否则cmd当前所在路径只能在armcc.exe所在路径输入armcc,才有提示信息!

方便访问可执行文件:通过将可执行文件的路径添加到环境变量中,我们可以在任何位置直接运行该可执行文件,而不需要指定完整的路径。
简化配置过程:某些应用程序或开发工具需要访问特定的库文件或配置文件。通过设置环境变量,我们可以避免在每次使用这些工具时手动指定路径。
提高系统的灵活性:通过使用环境变量,我们可以轻松地更改系统的配置,而不需要修改应用程序的代码。这使得系统更加灵活和可维护。

分类:

临时环境变量:在会话结束后将被清除;

永久环境变量:一直有效直到被用户主动删除。
系统环境变量:对整个操作系统(所有用户)有效,相当于全局变量;

用户环境变量:只对当前用户有效,相当于局部变量。

环境变量的设置:

【1】手动设置:1-> 新建 2->变量名 3->变量值,最后点击确定即可

【2】指令设置:回车之后,打开终端输入如下命令后按回车,环境变量已经保存到系统

setx MY_VAR2 “C:\MyFolder

创建系统变量:

创建系统环境变量,需要用管理员打开终端,然后输入命令创建,如下图:
指令后面需要带上 /m,才可把变量添加到系统变量中

ASCII码

在cmd窗口中我们可以通过任意一个字符的ASCII码来输入该字符,比如Ctrl+G、Ctrl+N等,字母a-z对应ASCII码的97-122。对于ASCII码大于26的字符,可以通过这个方法来输入:按住Alt键不松,通过小键盘输入ASCII码的十进制值,松开Alt键即可

ArcGIS中的批处理

解决中文乱码问题

REM 声明采用UTF-8编码

chcp 65001

批处理bat实用案例

@echo和echo的区别

 表示关闭命令回显功能,即命令执行时不在屏幕上输出命令本身,只输出命令的执行结果。

echo  在屏幕上输出命令本身,也输出命令的执行结果(在terminal上显示)

@echo off 的作用

表示关闭批处理文件自身的回显,即执行此句之后的命令不会显示出来,只有输出结果会被显示
整体的理解就是 执行的命令不显示了,显示执行命令后的结果。

如下,不带@echo off

如下,带@echo off,所有的执行的命令都不显示了,显示执行命令后的结果

cd /d %~dp0 命令解释

cd /d %~dp0的含义

有三个部分:

    1.cd – 这是更改目录命令。
    2./d – 这个开关让cd改变驱动器和目录。 没有它,你将不得不做cd %~d0 & cd %~p0 。
    3.%~dp0 – 这可以进一步分为三个部分:
        【1】%0 – 这表示批处理脚本的第零个参数。 它扩展到batch file本身的名称。
        【2】%~0 – 在那里解开扩展参数的双引号( " )。
        【3】%dp0 – d和p有扩展的修饰符。 d强制添加一个驱动器号并添加完整path。

cd /d %~dp0的意思就是cd /d E:\test_path

其中:

~      :表示扩展
%0   :代表批处理本身 E:\test_path\test.bat

~dp  :是变量扩充
d      :既是扩充到分区号 E:
p      :就是扩充到路径 \test_path
dp    :就是扩充到分区号路径 E:\test_path

通过实战进行解释:
1.通常情况下我们要进入其他盘符下的任意目录,需要在CMD窗口运行两次命令:
第一次,进入盘符,第二次进入指定目录
盘符切换:

从D:切换进入E:\test_path ,要使用两条命令:

e:
cd test_path

 通过使用CD命令,并加入参数 /d ,可以通过一个步骤,直接进入指定盘符下的任意文件夹。

#一个步骤进入E盘下的test_path目录:

cd /d e:\test_path

由此可见cd /d %~dp0 的意思就是等价cd /d E:\test_path\

 更多语法介绍

选项语法:

 ~0 - 删除任何引号("),扩充 %0

%~f0 - 将 %0 扩充到一个完全合格的路径名(“f”是file,即文件)

%~d0 - 仅将 %0 扩充到一个驱动器号

%~p0 - 仅将 %0 扩充到一个路径

%~n0 - 仅将 %0 扩充到一个文件名(“n”是name 文件名)

%~x0 - 仅将 %0 扩充到一个文件扩展名

%~s0 - 扩充的路径只含有短名(“s”为Short,短的)

%~a0 - 将 %0 扩充到文件的文件属性(“a”为attribute,即属性)

%~t0 - 将 %0 扩充到文件的日期/时间(“t”time)

%~z0 - 将 %0 扩充到文件的大小(Size 大小)

%~$PATH:0 - 查找列在路径环境变量的目录,并将 %0 扩充 到找到的第一个完全合格的名称。如果环境变量名 未被定义,或者没有找到文件,此组合键会扩充到 空字符串

可以组合修饰符来得到多重结果:

%~dp0 - 仅将 %0 扩充到一个驱动器号和路径

%~nx0 - 仅将 %0 扩充到一个文件名和扩展名

%~fs0 - 仅将 %0 扩充到一个带有短名的完整路径名

%~dp$PATH:0 - 查找列在路径环境变量的目录,并将 %I 扩充 到找到的第一个驱动器号和路径。

%~ftza0 - 将 %0 扩充到类似输出线路的

DIR%0为当前批处理文件

批处理文件名做参数

echo off
rem setlocal enabledelayedexpansion
::%~n0用来表示批处理文件的名称
set param1=%~n0
::%~nx0用来表示批处理的文件名加后缀
set param2=%~nx0
echo %param1%
echo %param2%

pause

运行结果

延时扩展命令使用

延时扩展命令为:

setlocal enabledelayedexpansion

参考《批处理中setlocal enabledelayedexpansion的作用详细整理》:https://blog.csdn.net/weixin_42107504/article/details/137587337

 获取.h文件宏定义并截取字符

@echo off
setlocal enabledelayedexpansion 
set "var1=#define CONFIG_ENABLE_"
::for里面的变量赋值要使用延时扩展符号!!
for /f "delims=" %%i in (config.h) do (
    set var=%%i
	set var_tmp=!var:~0,22!
    echo !var_tmp!
    if "!var_tmp!"=="%var1%" (
        echo Variable is var1
		set var2=!var:~22,26!
		goto for_end
    ) else (
        echo Unknown variable
    )
)
:for_end
echo "for_end"
echo version:%var2%
pause

 .bat中并行运行

TEST1.bat:

echo "Are you ready to continue...(Y/N)"
set /p isReady=
if "%isReady%" == "Y" (
    echo "Ready to continue."
) else (
    exit
)

start for %%i in (2, 7, 12, 17) do start TEST2 %%i  28

TEST2.bat

@echo off
echo parameter a  is %1
echo parameter b  is %2

pause

 传参及批处理调用另一个批处理

将TEST1.bat中的值传到TEST2.bat中,并显示出来;参考如下实现

TEST1.bat:

set a=1
set b=2
set c=3
call TEST2.bat %a%,%b%,%c%

 TEST2.bat:

echo parameter a  is %1
echo parameter b  is %2
echo parameter c  is %3

pause

类似的还有%1-%9,分别代表传递来的第1-9个参数;为cmd命令行模式传进来的参数

以下为批处理入门实操教程

第一条批处理命令

win+r进入cmd命令窗口,打开输入cmd:

批处理的运算

1.算术运算:/a表示设置算术运算

 优先级使用括号进行

2.重定向操作

3.多名命令运算

4.管道符号

第一个命令A的输出当做第二个命令B的输入

批处理基本命令格式

1.基本命令格式

2.批处理文件接收参数

3.批处理注释 

使用rem进行注释

rem 这里的rem为注释符,下面的echo显示文字
echo “批处理使用rem注释"

pause

 使用::进行注释

:: 这里的::为注释符,下面的echo显示文字
echo “批处理使用::注释"

pause

 4.改变cmd窗口文字背景颜色和标题修改

0a表示黑色背景和淡绿色文字

5.查看日期和时间

6.start启动命令

7.

8.任务列表和终止命令

9.文件夹结构命令tree

10.关机命令,计划任务命令at,环境变量设置

查看所有的系统环境变量的命令:在cmd中输入 set 回车。

目录和文件命令

1.目录浏览dir命令

 

2.目录新建与删除

mkdir也可以缩写为md

 

3.目录切换命令cd

. 是当前目录,..是指上级目录


4.目录重命名ren

5.目录拷贝命令copy

复制后进行删除操作

/b表示以二进制模式复制文件

copy /b text.bin+data.bin+data_code.bin+aec.bin+aac.bin app.bin


6.文件删除命令del

删除指定后缀的所有文件


7.文件剪切命令move

if条件判断结构

1.if-else结构

使用 pause>nul ,nul相当于空文件,即把这些文字隐去了。其作用与pause基本相同,同样是等待用户按键,区别在于不显示“请按任意键继续.....”

2.判断文件是否存在exists

3.文件判断删除

加括号即可换行

 

for循环结构

基本格式: for %%i in (command1) do command2

1.for、in 和 do是for语句的关键字,它们三个缺一不可;
2.在 in 之后,do 之前的括号"()"不能省略,do 后可以有括号,且括号内不能有注释
3.%%i 是for语句中对形式变量的引用;
4.for语句的形式变量I,可以换成26个字母中的任意一个,这些字母会区分大小写;
5.in和do之间的command1表示的字符串或变量可以是一个,也可以是多个,每一个字符串或变量,我们称之为一个元素,每个元素之间,用空格键、跳格键、逗号、分号或等号分隔;

6.参数说明:/d 仅为目录;/R递归;/L迭代数值范围;/f(F) 打印文件内容

1.循环遍历文件夹名称

2.遍历文件夹下的文件

3.遍历数字操作

4.遍历文件内容操作

::这个会显示a.txt里面的内容,因为/f的作用,会读出a.txt中
的内容;按每行进行遍历
for /f %%i in (a.txt) do echo %%i 
::而这个只会显示a.txt这个名字,并不会读取其中的内容。
for %%i in (a.txt) do echo %%i 

::在config.ini文件中寻找包含“=”字符的一行,将该行内容赋给%%i
for /f "delims=" %%i in ('type "config.ini"^| find /i "="') do set %%i

网络相关命令

编程实际案列

1.计算机信息展示

2.交互操作介绍

3.计划执行操作

通过at命令执行计划操作

4.Bat批处理脚本转Exe程序介绍

需要通过对应的工具bat才能转换为exe.

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用Prometheus监控批处理脚本(.bat文件),您需要进行以下步骤: 1. 安装和配置Prometheus:您需要在服务器上安装Prometheus,并配置Prometheus以监控您的目标。您可以在Prometheus的配置文件中定义您要监控的目标。您可以使用以下示例配置来监视批处理脚本: ``` scrape_configs: - job_name: 'batch-jobs' static_configs: - targets: ['localhost:9090'] - labels: job: 'batch-jobs' instance: 'batch-server' ``` 在上面的示例中,您需要将localhost:9090替换为批处理脚本运行的服务器地址和端口。请确保您在配置文件中设置了正确的目标。 2. 在批处理脚本中暴露指标:Prometheus监控的目标需要向Prometheus公开指标。您需要在批处理脚本中安装和配置Prometheus的客户端库,以便您的脚本可以暴露指标。例如,您可以使用以下代码将计数器暴露给Prometheus: ``` REM 安装并配置Prometheus客户端库 choco install prometheus-net REM 导入Prometheus客户端库 set "PATH=%PATH%;C:\Program Files\Prometheus" REM 定义计数器 set counter=0 REM 每次运行增加计数器值 set /a counter+=1 REM 将计数器暴露给Prometheus echo batch_job_count %counter%>> prometheus_metrics.txt ``` 在上面的示例中,您需要将prometheus_metrics.txt替换为您要使用的文件名。该文件应该是Prometheus客户端库可以读取的格式,通常是文本格式,每行一个指标名称和值。 3. 在Prometheus中查询指标:完成上述步骤后,您可以在Prometheus中查询批处理脚本的指标。您可以使用PromQL查询语言来查询指标,并将结果可视化为图表或图形仪表板。例如,您可以使用以下PromQL查询来获取计数器值: ``` batch_job_count ``` 在上面的示例中,batch_job_count是您在批处理脚本中定义的指标名称。 以上就是使用Prometheus监控批处理脚本的基本步骤。请注意,您需要根据您的具体情况进行适当的配置和自定义。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值