|
|
此贴是因为楼主突发奇想想用批处理写一些较大的工程。
但是苦于批处理语法比较原始,尝试对其进行一定的优化。
“函数”实现(局部变量支持,return时自动release);
“结构体”实现:通过metadata绑定关联的变量。
附赠debug(调用栈级别)支持和性能优化。
util.bat
nsutil.bat
一个使用和测试的例子.bat
- @echo off
- set _G.FAST=1
- if "%~1" equ "CALL_SELF" (
- for /f "tokens=1,*" %%a in ('echo.%*') do (
- call %%b || %?|% "Call '%~nx0' failed."
- )
- %-|%
- )
- pushd "%~dp0"
- setlocal ENABLEDELAYEDEXPANSION
- if not defined _G.PACKED (
- call NSUTIL :NSUTIL_Init %~n0
- ) else (
- call :NSUTIL_Init %~n0
- )
- set _ & (set | find /C /V "") & pause<nul
- time <nul
- %{% MAIN TEST3 %}%
- time <nul
- set _ & (set | find /C /V "") & pause
- %-|%
- :MAIN_TEST
- for %%. in (_L[!_G.LEVEL!].) do (
- %{n% %%.A %}%
- set %%.B=3
- set %%.B2=30
- %{s% %%.A k %%.B %}%
- %{s% %%.A k2 %%.B %}%
- %{s% %%.A k3 %%.B %}%
- %{g% %%.A k %%.R %}%
- %{s% %%.A k2 %%.B2 %}%
- %{n% %%.o %}%
- %{s% %%.A o1 %%.o %}%
- %{s% %%.A k3 %%.o %}%
- %{s% %%.A o1 %%.B2 %}%
-
- %{c% %%.A %%.B %}%
- set _ & (set | find /C /V "") & pause
-
- %{s% %%.A o1 %%.o %}%
- set _ & (set | find /C /V "") & pause
-
- %<-% %%.A
- )
- %-|%
- :MAIN_TEST2
- for %%. in (_L[!_G.LEVEL!].) do (
- %{% MAIN TEST %}% %->% %%.T
- %<-% %%.T
- )
- %-|%
- :MAIN_TEST3
- for %%. in (_L[!_G.LEVEL!].) do (
- %{% MAIN TEST2 %->% %%.T
- %<-% %%.T
- )
- %-|%
复制代码
也许可以探讨一下有无更好的方法。纯娱乐。
|
评分
-
查看全部评分
|