中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 我自己写的 ini/资源文件读取
作者:
标题: 我自己写的 ini/资源文件读取 上一主题 | 下一主题
knoppix7
银牌会员





积分 1287
发帖 634
注册 2007-5-2
来自 cmd.exe
状态 离线
『楼 主』:  我自己写的 ini/资源文件读取

代码不是太好。见谅.未作完整的除虫.
@echo off %{BY knoppix7@www.cndos.net}%
::%1 =>INI文件路径
::%2 =>段名 不用加[]
::%3 =>变量名
::%3为空则读出整段内容
::Command =>模式(如 SET/ECHO) {set:设置为变量 echo:显示 },不能为空
::YH =>设置是否使用引号YH="则加引号 YH不存在则不加
::变量延迟必须在父BAT中被打开
if NOT EXIST "%~1" (Echo File Not Found&GOTO :EOF)
if "%~2"==""  GOTO :EOF
for /F "eol=; tokens=1 delims=:" %%i IN ('findstr /I /n /c:"[%~2]" "%~1" ^| Findstr /v ";" ') DO (
        SET line=%%i
)
if "%line%"=="" (echo Section Not Found&GOTO :EOF)
FOR /f "eol=; tokens=1* skip=%line% delims=" %%i IN ('type "%~1"') DO (
        set "temp_1=%%i"
        if "!temp_1:~0,1!"=="[" (GOTO :EOF) ELSE (
                IF "%~3"=="" (%command% %YH%%%i%YH%) ELSE (
                        FOR /F "tokens=1 delims==" %%a IN ("%%i") DO (
                                if /i "%%a"=="%~3" (%command% %YH%%%i%YH%)
                        )
                )
        )
)
set YH=
set line=
set temp_1=
作为子BAT调用的时候请不要再这个BAT里加setlocal ENABLEDELAYEDEXPANSION
因为这样的话.这个BAT执行完就会把变量还原了,白读了.

用途:
方便设定/显示ini内容(看command设置了)
捆绑资源.("command=>>XX.txt echo "的时候就是输出文件了)
     以前用more/type 捆绑vbs文件,一个BAT只能捆绑一个.写成资源就随便了(看示例)
代码只是骨架,其他功能请自己开发把.

示例:
@echo off&setlocal ENABLEDELAYEDEXPANSION
set YH="
set command=set
echo 设置变量
call inifile.bat "%~0" 设置变量
set words
pause
echo 显示内容
set YH=
set command=echo
call inifile.bat "%~0" 显示内容
pause
echo 输出文件
set YH=
set "command=>>test.bat echo"
call inifile.bat "%~0" 输出文件
call test.bat
pause
del test.bat
GOTO :EOF

[设置变量]
words=welcome to cn-dos
[显示内容]
welcome to cn-dos
[输出文件]
@echo off
echo output as "%~f0"
echo welcome to cn-dos
pause

[ Last edited by knoppix7 on 2008-3-10 at 08:25 PM ]

2008-3-10 20:23
查看资料  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 2 楼』:  

无奈何版主的batch2ubb里面有一段读取ini文件的代码,写的挺好的。

2008-3-11 14:58
查看资料  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: