批处理(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......