batch批处理小记
说明
批处理(Batch),也称为批处理脚本,它应用于DOS和Windows系统中。
命令
echo
说明:打开回显或关闭请求回显功能,或显示消息。
rem
说明:注释命令,它并不会被执行,只是起一个注释的作用。
pause
说明:暂停命令。运行 Pause 命令时,将显示消息:Press any key to continue. . .(或:请按任意键继续. . .)
call
说明:从一个批处理程序调用另一个批处理程序,并且不终止父批处理程序。
start
说明:调用外部程序,所有的DOS命令和命令行程序都可以由start命令来调用。
goto
说明:跳转命令。程序指针跳转到指定的标签(前面加:表示这是标签),从标签后的第一条命令开始继续执行批处理程序。
set
说明:显示、设置或删除变量。
符号
重定向符号 ( 输出 >与>> ) 和 ( 输入 < )
管道符号 |
转义符 ^ 和 %
逻辑命令符(&与&&与||)
案例
批量修改文件名(bat文件放在存放需要改名文件的文件夹中)
@echo off
set a=00
setlocal EnableDelayedExpansion
for %%n in (*.mp4) do (
set /A a+=1
ren "%%n" "恶心的科学!a!.mp4"
)
拖拽文件夹到bat文件上,修改相关内容
@echo off
echo Start Modify
REM 编码utf-8
chcp 65001
IF "%~1" == "" GOTO ERROR
IF NOT EXIST "%~1" GOTO ERROR
cd /d %~1
REM echo %cd%
echo del .exe file
del *.exe
echo rmdir vriamges
rd /s/q .\vriamges
echo replace addr and modify 1e3 to 2e3
set dist_js=\dist\js\app.39700d7c.js
set dist_js1=\dist\js\app.39700d7c_1.js
set f1=%cd%%dist_js%
set f2=%cd%%dist_js1%
REM echo %f1%
REM echo %f2%
if not exist %f1% GOTO ERROR
if not exist %f2% GOTO ERROR
set addr_external=http://192.168.3.20:81/dispatch/infoRealTimeData
set addr_internal=http://192.168.0.12:8080/HZSWDD/dispatch/infoRealTimeData
set time_external=1e3
set time_internal=2e3
REM echo %addr_external%
REM echo %addr_internal%
for /f "delims=" %%i in ('type "%f1%"') do (
set str=%%i
setlocal EnableDelayedExpansion
set str=!str:%addr_external%=%addr_internal%!
set str=!str:%time_external%=%time_internal%!
echo !str!>>%f1%.bk
endlocal
)
move "%f1%.bk" "%f1%"
for /f "delims=" %%i in ('type "%f2%"') do (
set str=%%i
setlocal EnableDelayedExpansion
set str=!str:%addr_external%=%addr_internal%!
set str=!str:%time_external%=%time_internal%!
echo !str!>>%f2%.bk
endlocal
)
move "%f2%.bk" "%f2%"
echo copy png image
REM set image3d_origin=%cd%\resource\images\26d185ddb4e5d092.png
set image3d_origin=%cd%\resource\images\f9f1e4ead85bc5f3.png
set image3d_new=%~dp0\assets\image3d.png
if not exist %image3d_origin% GOTO ERROR
if not exist %image3d_new% GOTO ERROR
copy "%image3d_new%" "%image3d_origin%"
echo all modify complete!
pause