当前位置:首页 > 杂谈 > 正文内容

批处理(Batch)脚本常用汇总2022-10-10-bat文件转换

2024-09-20 12:30:38杂谈128

批处理(Batch),也称为批处理脚本。

顾名思义,批处理脚本是一种脚本语言,应用于DOS和Windows系统中,用于对某对象进行批量的处理。

包含批处理脚本的文件是批处理文件,批处理文件(.bat文件)是可执行文件,由一系列cmd命令构成。

----------------------------------------------------------------------------------------------------------------

一、工作中批处理总结:

1.批量删除某一目录下的文件,该文件类型为.log文件。

@echo off REM zaa REM 1.0.0 REM 文件复制批处理脚本 REM 1.源文件夹 set primitive="E:\Folders\01_工作记录\08_时间轴记录\2022\20220831-杭海线-运维故障排查\TRAIN-1,TC1\Train-1-log" echo 正在清除log文件请稍等...... pause :: 删除当前路径下log文件 add by zaa 2022-9-03 begin REM 3.循环删除 del /f /s /q %primitive%\*.log :: 删除当前路径下log文件 add by zaa 2022-9-03 end echo 清除log文件完成 echo. & pause

2.批量拷贝某一个目录下的文件,该文件类型为.log文件,拷贝到另外一个指定目录。

@echo off REM zaa REM 1.0.0 REM 文件复制批处理脚本 REM 1.源文件夹 set primitive="E:\Folders\01_工作记录\08_时间轴记录\2022\20220831-杭海线-运维故障排查\TRAIN-1,TC1\TRAIN-1,TC1" REM 2.目的文件夹 set destination="E:\Folders\01_工作记录\08_时间轴记录\2022\20220831-杭海线-运维故障排查\TRAIN-1,TC1\Train-1-log" echo 正在拷贝日志文件请稍等...... pause REM 3.循环打印 for /R %primitive% %%i in (*.log) do echo %%i pause REM 4.循环复制 for /R %primitive% %%f in (*.log) do copy /y "%%f" %destination% echo 正在拷贝日志文件完成 echo. & pause

3.定时关机程序,倒计时5秒。

@echo off REM zaa REM 1.0.0 REM 文件复制批处理脚本 REM 1.设置定时关机时间 set counting_time=5 echo 正在关机请稍等......倒计时%counting_time%... pause shutdown -s -t %counting_time%

4.批量修改一个目录下的文件的文件名,该文件原来的类型为.log文件,修改成.txt文件。

@echo off REM zaa REM 1.0.0 REM 重命名文件批处理脚本 REM 1.源文件夹 set primitive="E:\Folders\01_工作记录\08_时间轴记录\2022\20220907-长沙线-运维故障排查\pcapng" echo 正在重命名文件请稍等...... pause REM 2.循环打印 for /R %primitive% %%i in (*.log) do echo %%i pause REM 3.先删除已经重命名过的文件然后再重命名 for /R %primitive% %%f in (*.txt) do del /f /s /q "%%f" pause REM 4.循环重命名 for /R %primitive% %%f in (*.log) do ren "%%f" *.txt echo 重命名文件完成 echo. & pause

5.批量修改一个目录下的文件的文件名,该文件原来的类型为.log文件。将所有文件名中"dcs"改为"supervision"。

@echo off REM zaa REM 1.0.0 REM 重命名文件批处理脚本 setlocal EnableDelayedExpansion color 0a echo %data% %time% echo rename file now... set a=1 pause for /f %%i in (dir /b *.log) do ( set "str=%%~nxi" REM 这里~表示从第几位开始截取名称,~3表示从第三位开始截取,~3,7表示从第三位截取到第七位 set "shortstr=!str:~3!" REM 这里是将"-"换成了"_" set "replacestr=!shortstr:-=_!" echo !replacestr! ren "%%i" supervision!replacestr! set /a a=a+1 ) ) set /a a=a-1 echo rename finish, rename count:%a%。 echo. & pause

6.批量修改一个目录下的文件的文件名,该文件原来的类型为.log文件。将所有文件名中"dcs"改为"supervision"。

@echo off REM zaa REM 1.0.0 REM 重命名文件批处理脚本 color 0a echo %data% %time% echo rename file now... set a=1 pause setlocal EnableDelayedExpansion for /f %%i in (dir /b *.log) do ( set "str=%%~nxi" REM 这里是直接将"dcs"换成了"supervision" set "replacestr=!str:dcs=supervision!" echo !replacestr! ren "%%i" !replacestr! set /a a=a+1 ) ) endlocal set /a a=a-1 echo rename finish, rename count:%a%。 echo. & pause

7.给系统添加java环境变量,java的安装路径为:"D:\Program Files\Java\jdk1.8.0_152"。

@echo off REM zaa REM 1.0.0 @echo 以管理员身份运行否则会拒绝访问系统变量 setlocal EnableDelayedExpansion color 0a set java_home="D:\Program Files\Java\jdk1.8.0_152" echo %data% %time% pause call :addpath !java_home! goto end :addpath setx /M JAVA_HOME %1 setx /M CLASSPATH ".;%%JAVA_HOME%%\lib;%%JAVA_HOME%%\lib\tools.jar;" setx /M PATH "%PATH%;%%JAVA_HOME%%\bin;%%JAVA_HOME%%\jre\bin;" goto :eof :end

8.批处理脚本,批量修改文件名称。

@echo off REM zaa REM 1.0.0 REM 重命名文件批处理脚本 setlocal EnableDelayedExpansion color 0a set LowerCase=supervision set UpperCase=SUPERVISION echo %data% %time% echo rename file now... set a=1 pause for /f %%f in (dir /b *.log) do ( REM 这里是直接将"LowerCase"换成了"UpperCase" set string=%%f set from=!LowerCase! set to=!UpperCase! call :convert !from! !to! move %%f !string! set /a a=a+1 ) set /a a=a-1 echo rename finish, rename count:%a%。 endlocal echo. & pause goto end :convert set string=!string:%1=%2! goto :eof :end

9.在文件名称后面增加序列号,从266开始。

@echo off REM zaa REM 1.0.0 REM 重命名文件,批处理脚朿 color 0a echo %data% %time% echo deal file now... setlocal EnableDelayedExpansion set a=1 set filenum=266 pause for /f %%i in (dir /b *.jpg) do ( REM 获取文件名,不包含后缀 set name=%%~ni REM 获取文件后缀,不包含文件吿 set ext=%%~xi set ext=!ext:~1! REM 修改文件名,加上序号 set replacestr=!name!_!filenum! echo from !name!.!ext! to !replacestr!.!ext! move !name!.!ext! !replacestr!.!ext! set /a filenum=filenum+1 set /a a=a+1 ) ) set /a a=a-1 echo deal finish, deal count:%a% endlocal echo. & pause

10.在文件名称格式化,格式化为三位数字,不足补0。

@echo off REM zaa REM 1.0.0 REM 重命名文件,批处理脚朿 color 0a echo %data% %time% echo deal file now... setlocal EnableDelayedExpansion set a=1 pause for /f %%i in (dir /b *.jpg) do ( REM 获取文件名,不包含后缀 set name=%%~ni REM 获取文件后缀,不包含文件吿 set ext=%%~xi set ext=!ext:~1! REM 修改文件名,加上序号 Set "seq=000!name!"&Set "seq=!seq:~-3!" set replacestr=!seq! echo from !name!.!ext! to !replacestr!.!ext! move !name!.!ext! !replacestr!.!ext! set /a a=a+1 ) ) set /a a=a-1 echo deal finish, deal count:%a% endlocal echo. & pause

11.去掉文件名中的特殊字符。

@echo off REM zaa REM 1.0.0 REM 重命名文件,批处理脚朿 color 0a echo %data% %time% echo deal file now... setlocal EnableDelayedExpansion set a=2 set seq=266 pause for /f %%i in (dir /b *.jpg) do ( REM 获取文件名,不包含后缀 set name=%%~ni REM 获取文件后缀,不包含文件吿 set ext=%%~xi set ext=!ext:~1! Set "replacestr=!name:20221201101420201jpg_Page=!"&Set "replacestr=!replacestr:_Image1=!" REM 修改文件名,加上序号 REM set replacestr=!name!_!filenum! echo from !name!.!ext! to !replacestr!.!ext!, seq = !seq! move !name!.!ext! !replacestr!.!ext! set /a a=a+1 set /a seq=seq+1 ) ) set /a a=a-1 echo deal finish, deal count:%a% endlocal echo. & pause

----------------------------------------------------------------------------------------

The batch file scripts which is,in the windows system,operated through administrator role consists of very commands towards unique function......