批处理的运用
批处理的运用
1。XCopy部署程序。
文件包括:Deploy.bat 和 Config.txt
Deploy.bat 读取Config.txt总的配置信息,运用XCopy部署程序。
Config.txt 保存配置的参数信息。
文件内容:
Config.txt :
D:\MyWork\localWeb
D:\Develop\Source\JTGL
*.aspx,*.js,*.asp,*.html,*.htm,*.jpg,*.css,*.gif,*.xml,*.ascx
*.aspx,*.js
各行参数说明: 第一行: 要部署的文件夹
第二行: 开发环境下的文件夹
第三行: 需要拷贝的文件的后缀
第四行: 快速拷贝的文件后缀。
Deploy.bat:
@echo off
echo.
echo 开始检测系统的代码路径和网站安装路径......
setlocal enabledelayedexpansion
set iPos =0
:: 获取Cofig中的配置信息,写的不是很灵活.
for /f %%i in (Config.txt) do (
set /a iPos +=1
if !iPos! equ 1 set GsPos=%%i
if !iPos! equ 2 set SourcePos=%%i
if !iPos! equ 3 set Total=%%i
if !iPos! equ 4 set Quick=%%i
)
echo.
echo 获取网站安装路径为:%GsPos%
echo.
echo 获取源代码路径为:%SourcePos%
echo.
echo 开始配置网站......
echo.
echo 开始配置程序集.....
echo.
::删除程序集
del %GsPos%\bin\XXX.dll
::需要删除的程序集
::拷贝程序集
copy %SourcePos%\Public_Com\bin\Debug\XXX.dll %GsPos%\bin
::需要拷贝的程序集
echo.
choice /c:12 /M 请选择配置的方式(1:快速配置,2:完全配置)
::完全配置,配置Config.txt中第三行设定的所有后缀的文件
if errorlevel=2 CALL;:CopyFile;%Total%
::快速配置,配置Config.txt中第四行设定的所有后缀的文件
if errorlevel=1 CALL;:CopyFile;%Quick%
goto End
:: 拷贝的文件的子程序.
:CopyFile
:Begin
IF "%1"=="" exit /b
xcopy %SourcePos%\%1 %GsPos%\JTGL\ /s/r/y
Shift
GOTO Begin
:End
echo.
echo 开始清理IE缓存文件.....
::清理缓存,不知道为什么,不管用!!郁闷!
::del /f /s /q "%userprofile%\Local Settings\Temporary Internet Files\*.* "
echo.
echo 清理IE缓存完毕!
echo.
::Pause
2。批量执行sql语句。
需要替换指定的文件中的参数, 如本例就是 用 2007 替换 参数 @YR@
ExecSql.bat 文件内容:
@echo off
::设定Sql文件所在的目录
setlocal enabledelayedexpansion
set SqlPos=D:\Develop\Source\Sql
md c:\temp >nul 2>nul
::获取目录下的所有txt和sql文件,暂时保存list.txt中
dir /o:n /b %SqlPos%\*.txt>> list.txt
dir /o:n /b %SqlPos%\*.sql>> list.txt
::执行sql语句
for /f %%i in (list.txt) do (
echo.
echo.
echo 正在执行的sql文件:%%i
echo.
echo.
copy /b %SqlPos%\%%i c:\temp\tempsql.txt
Call ;:Replace
:: 登陆sqlserver U后面用户名 P后面密码 D后面是数据库名称
isql -Usa -Pmyvpass -dmydatabase -ic:\temp\tempsql_tmp.txt
quit >nul 2>nul
del c:\temp\tempsql.txt
del c:\temp\tempsql_tmp.txt
echo.
echo.
echo 执行的sql完毕!
echo.
echo.
)
del list.txt
goto End
:Replace
for /f "delims=" %%a in ('type c:\temp\tempsql.txt') do (
set str=%%a
set "str=!str:@YR@=2007!"
echo !str!>>c:\temp\tempsql_tmp.txt
)
exit /b
:End
Pause