MS-DOS Batch Script Template
2016-01-07 10:02
225 查看
@echo off
@setlocal ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
@rem Name:
@rem Purpose:
@rem
@rem Author:
@rem Revision:
@rem
@rem @echo off
@rem @set method=goto:eof
@rem @set mbegin=setlocal
@rem @set mend=endlocal^&goto:eof @rem ^& call :quit ^%errorlevel^%
@set method=@goto:eof
@set mbegin=@set a1xyzefwew=""
@set mend=@goto:eof
@set mreturn=@exit /b !errorlevel!
@set return=@goto :on_exit
@set errorlevel=0
@rem go to rum main()
@goto :main
%method%
: usage ()
%mbegin%
echo %~1%
%mend%
%method%
: config ()
%mbegin%
set me=%~n0
set mex=%~nx0
@rem
@rem initialize configuration items here
@rem
set HEAD_LINE=*****************
call :parse_commind_line %*
%mend%
%method%
: main ()
%mbegin%
@rem Check if need to show help informaiton
if "%~1" neq "" (
set param1=%~1
if "!param1:/?=!" neq "!param1!" (
call :usage %~nx0
exit /b 1
)
)
@rem load configuration
call :config %*
@rem initilize log environment
call :init_log
@rem log example
@rem set log=C:\windows\system32\inetsrv\appcmd.exe set config "UimDirectAuxTestWebSite" /section:UimDirectAuxModule/"+references.[name='JOSE-JWWD_Server\AuthenFilter\uim-direct-aux\UimDirectAuxWebTest\uim_direct_aux\bin\jose-jwt.dll']"
@rem call :tee "%log%"
@rem
@rem add business logical here
@rem
@rem for example, call a method
@rem call :method1 || ( set errorlevel=1 & %return%)
%return%
%mend%
%method%
: method1 ()
%mbegin%
@rem mkdir foldername >nul || (set errorlevel=1 & %mreturn%)
@rem set errorlevel=0 & %mreturn%
%mend%
%method%
: parse_commind_line ()
%mbegin%
:lbl_param_list
shift /1
if "%1" equ "" (
goto:eof
)
@rem read optional args
@REM set p=%~1
@REM set p2=%p:/old_filter=%
@REM if /i "%p%" neq "%p2%" (
@REM if /i "%~2" neq "" (
@REM set g_optional_param_name=%~2
@REM )
@REM )
goto :lbl_param_list
%mend%
%method%
: print_head ()
%mbegin%
@call :log_prefix
@echo %LOG_PREFIX% %HEAD_LINE% %mex% log %HEAD_LINE% > %log_file%
%end%
%method%
: print_foot ()
%mbegin%
@call :log_prefix
@echo %LOG_PREFIX% %HEAD_LINE% %mex% log %HEAD_LINE% >> %log_file%
%end%
%method%
: init_log ()
%mbegin%
@rem get log file name
set log_file=%LOCALAPPDATA%\%me%\log
if not exist %log_file% (
mkdir %log_file% || echo "failed to create %log_file% with error %errorlevel%" & got :eof
)
set log_file="%log_file%\%mex%.log"
@rem initialize the log file
call :print_head
%mend%
%method%
@rem
@rem output message to both stdout and %log_file%
@rem
: tee ()
@rem
@rem %* -- message
@rem
%mbegin%
@call :log_prefix
@set tee_log=%*
@rem remove left "
set left_char=%tee_log:~0,1%
set left_char=%left_char:"=%
if "%left_char%" equ "" (
set tee_log=%tee_log:~1%
)
@rem remove right "
set right_char=%tee_log:~-1,1%
set right_char=%right_char:"=%
if "%right_char%" equ "" (
set tee_log=%tee_log:~0,-1%
)
@set tee_log=%LOG_PREFIX% %tee_log%
echo %tee_log%
@echo %tee_log% >> %log_file%
%mend%
%method%
: log_prefix
%mbegin%
@set LOG_PREFIX=[%date:~0,-4% %time%]
%mend%
%method%
@rem
@rem exit the batch with checking the error code
@rem please use this method by "goto :on_exit" rather than "call :on_exit"
@rem
: on_exit ()
%mbegin%
if %errorlevel% neq 0 (
echo %LOG_PREFIX% Failed to execute %mex%. For more information, please %log_file%
) else (
echo %LOG_PREFIX% Succeeded in executing %mex%. For details, please %log_file%
)
call :print_foot
@rem type %log_file%
endlocal
exit /b %errorlevel%
%mend%
@setlocal ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
@rem Name:
@rem Purpose:
@rem
@rem Author:
@rem Revision:
@rem
@rem @echo off
@rem @set method=goto:eof
@rem @set mbegin=setlocal
@rem @set mend=endlocal^&goto:eof @rem ^& call :quit ^%errorlevel^%
@set method=@goto:eof
@set mbegin=@set a1xyzefwew=""
@set mend=@goto:eof
@set mreturn=@exit /b !errorlevel!
@set return=@goto :on_exit
@set errorlevel=0
@rem go to rum main()
@goto :main
%method%
: usage ()
%mbegin%
echo %~1%
%mend%
%method%
: config ()
%mbegin%
set me=%~n0
set mex=%~nx0
@rem
@rem initialize configuration items here
@rem
set HEAD_LINE=*****************
call :parse_commind_line %*
%mend%
%method%
: main ()
%mbegin%
@rem Check if need to show help informaiton
if "%~1" neq "" (
set param1=%~1
if "!param1:/?=!" neq "!param1!" (
call :usage %~nx0
exit /b 1
)
)
@rem load configuration
call :config %*
@rem initilize log environment
call :init_log
@rem log example
@rem set log=C:\windows\system32\inetsrv\appcmd.exe set config "UimDirectAuxTestWebSite" /section:UimDirectAuxModule/"+references.[name='JOSE-JWWD_Server\AuthenFilter\uim-direct-aux\UimDirectAuxWebTest\uim_direct_aux\bin\jose-jwt.dll']"
@rem call :tee "%log%"
@rem
@rem add business logical here
@rem
@rem for example, call a method
@rem call :method1 || ( set errorlevel=1 & %return%)
%return%
%mend%
%method%
: method1 ()
%mbegin%
@rem mkdir foldername >nul || (set errorlevel=1 & %mreturn%)
@rem set errorlevel=0 & %mreturn%
%mend%
%method%
: parse_commind_line ()
%mbegin%
:lbl_param_list
shift /1
if "%1" equ "" (
goto:eof
)
@rem read optional args
@REM set p=%~1
@REM set p2=%p:/old_filter=%
@REM if /i "%p%" neq "%p2%" (
@REM if /i "%~2" neq "" (
@REM set g_optional_param_name=%~2
@REM )
@REM )
goto :lbl_param_list
%mend%
%method%
: print_head ()
%mbegin%
@call :log_prefix
@echo %LOG_PREFIX% %HEAD_LINE% %mex% log %HEAD_LINE% > %log_file%
%end%
%method%
: print_foot ()
%mbegin%
@call :log_prefix
@echo %LOG_PREFIX% %HEAD_LINE% %mex% log %HEAD_LINE% >> %log_file%
%end%
%method%
: init_log ()
%mbegin%
@rem get log file name
set log_file=%LOCALAPPDATA%\%me%\log
if not exist %log_file% (
mkdir %log_file% || echo "failed to create %log_file% with error %errorlevel%" & got :eof
)
set log_file="%log_file%\%mex%.log"
@rem initialize the log file
call :print_head
%mend%
%method%
@rem
@rem output message to both stdout and %log_file%
@rem
: tee ()
@rem
@rem %* -- message
@rem
%mbegin%
@call :log_prefix
@set tee_log=%*
@rem remove left "
set left_char=%tee_log:~0,1%
set left_char=%left_char:"=%
if "%left_char%" equ "" (
set tee_log=%tee_log:~1%
)
@rem remove right "
set right_char=%tee_log:~-1,1%
set right_char=%right_char:"=%
if "%right_char%" equ "" (
set tee_log=%tee_log:~0,-1%
)
@set tee_log=%LOG_PREFIX% %tee_log%
echo %tee_log%
@echo %tee_log% >> %log_file%
%mend%
%method%
: log_prefix
%mbegin%
@set LOG_PREFIX=[%date:~0,-4% %time%]
%mend%
%method%
@rem
@rem exit the batch with checking the error code
@rem please use this method by "goto :on_exit" rather than "call :on_exit"
@rem
: on_exit ()
%mbegin%
if %errorlevel% neq 0 (
echo %LOG_PREFIX% Failed to execute %mex%. For more information, please %log_file%
) else (
echo %LOG_PREFIX% Succeeded in executing %mex%. For details, please %log_file%
)
call :print_foot
@rem type %log_file%
endlocal
exit /b %errorlevel%
%mend%
相关文章推荐
- UIAlertView、 UIActionSheet
- mabatis--使用mapper代理开发dao
- hibernate错误
- Dubbo学习总结(4)——Dubbo基于Zookeeper实现分布式实例
- Dubbo学习总结(4)——Dubbo基于Zookeeper实现分布式实例
- 整理一下Entity Framework的查询
- 一些问题
- KVC与KVO的应用场景
- Dubbo学习总结(4)——Dubbo基于Zookeeper实现分布式实例
- NAT简单实例,教会你如何配置访问内部开发环境
- 技术积累目录
- Linux 的虚拟文件系统--各结构之间的联系
- AngularJS讲解
- 用 map 输出一定格式的字符串Plain=w=b~|~t=e~|~e=c~|~r=d~|~q=a
- Windows下php环境变量的配置
- 一些问题
- Call to undefined function session_is_registered报错
- Java面向对象的一些理解重点和难点
- 利用虚拟网桥实现Docker容器的跨主机访问
- iOS应用启动时不占满全屏,上下有黑边!