批处理(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
12.增加安全网固定ip设置。
@echo off
REM zaa
REM 1.0.0
set ipcardname="以太网 3"
netsh interface ip set address name=%ipcardname% source=static addr=10.18.203.247 mask=255.255.255.0 gateway=10.18.203.1
echo 正在设置IP: 本地连接 10.18.203.247
pause
13.添加路由表设置,双网卡双网关同时生效。
@echo off
REM zaa
REM 1.0.0
route print
route delete 0.0.0.0
route delete 0.0.0.0
route delete 10.18.60.0
route delete 10.18.64.0
route delete 192.168.10.0
route delete 10.18.0.0
route add 10.18.60.0 mask 255.255.192.0 192.168.10.1 METRIC 20 -p
route add 10.18.64.0 mask 255.255.128.0 192.168.10.1 METRIC 20 -p
route add 192.168.10.0 mask 255.255.255.0 192.168.10.1 METRIC 20 -p
route add 10.18.0.0 mask 255.255.0.0 10.18.203.1 METRIC 21 -p
route print
pause
14.修改svn的messages的批处理脚本
@ECHO OFF
REM zaa
REM 1.0.0
REM 修改svn log中的messages设置
:: Set all parameters. Even though most are not used, in case you want to add
:: changes that allow, for example, editing of the author or addition of log messages.
set repository="tools"
set revision="520521"
set userName="zaa"
set propertyName="svn:log"
set action="N"
set bIsEmpty="true"
:: Only allow the log message to be changed, but not author, etc.
if /I not %propertyName% == "svn:log" (
echo %propertyName%
goto ERROR_PROPNAME
)
:: Only allow modification of a log message, not addition or deletion.
if /I not %action% == "M" (
echo %action%
goto ERROR_ACTION
)
:: Make sure that the new svn:log message is not empty.
if %bIsEmpty% == "true" goto ERROR_EMPTY
goto :eof
:ERROR_EMPTY
echo Empty svn:log messages are not allowed. >&2
goto ERROR_EXIT
:ERROR_PROPNAME
echo Only changes to svn:log messages are allowed. >&2
goto ERROR_EXIT
:ERROR_ACTION
echo Only modifications to svn:log %revision% messages are allowed in the %repository% repository. >&2
goto ERROR_EXIT
:ERROR_EXIT
exit /b 1
15.windows重启,用户登录操作系统后,系统自动启动指定虚拟机脚本
:: 关闭回显
@echo off
:: 判断是windows系统
if not "%OS%"=="Windows_NT" exit
cd /D %~dp0
:: %cd%: 代表的是当前目录
:: %~dp0:代表的是脚本文件在磁盘的位置
title vmActive
echo ====================================
echo Author:zhao_anan
echo Create:2022年12月08日
echo UpdataDate:2025年01月06日
echo Version:2.0v
echo Function:
echo 开启vmInScript.ini下的虚拟机
echo 在vmLog.log中查看开关虚拟机的详细信息
echo =====================================
set vmrunPath="D:\Program Files (x86)\VMware\VMware Workstation\vmrun.exe"
if not exist vmInScript.ini echo vmInScript.ini 文件不存在 && pause && exit
echo ======================================= >> vmLog.log
echo %date% %time% 开机>> vmLog.log
setlocal EnableDelayedExpansion
for /F %%I in ( vmInScript.ini ) do (
set pk=%%I
echo 开启虚拟机:!pk!
echo 开启虚拟机:!pk! >> vmLog.log
:: 开启虚拟机
%vmrunPath% -T ws start !pk! gui >> vmLog.log
)
setlocal DisableDelayedExpansion
pause>nul
exit
vmInScript.ini配置如下:
"F:\03_vmvare\03_CentOs7_fao\CentOs7.vmx"
"F:\03_vmvare\01_CentOs7_嵌入式\CentOs7.vmx"
"F:\03_vmvare\04_hefei_tiaoshi_centos7\CentOS~1\CentOS~1.vmx"

4102

被折叠的 条评论
为什么被折叠?



