中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-10 02:40
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [已结]批处理读取INI里内容后 判断是否是1或0 查看 858 回复 11
楼 主 [已结]批处理读取INI里内容后 判断是否是1或0 发表于 2008-10-18 00:42 ·  中国 江苏 南通 电信
新手上路
积分 6
发帖 6
注册 2008-10-18 00:17
17年会员
UID 128622
性别 男
状态 离线
求教 批处理读取INI里内容后 判断是否是1或0 然后执行相应程序!

比如我有个INI里 文件内容如下:(;;;;;;;;;;;;;;;;;是我加上去的)

;;;;;;;;;;;;;;;;;

开放=1
;;;;;;;;;;;;;;;;;

用BAT 读取这个INI里的 开放后面的数字 如果是1 则执行a.bat 如果是0则执行b.bat 请问这个怎么写哇

[ Last edited by HAT on 2008-10-19 at 13:25 ]
2 发表于 2008-10-18 00:43 ·  中国 江苏 南通 电信
新手上路
积分 6
发帖 6
注册 2008-10-18 00:17
17年会员
UID 128622
性别 男
状态 离线
比如我把这个 ini 放在C盘下 名字为 开关

ini路径就为 C:\开关.ini
3 发表于 2008-10-18 01:46 ·  中国 贵州 黔西南布依族苗族自治州 兴义市 电信
银牌会员
★★★
积分 2,098
发帖 566
注册 2007-09-11 07:27
18年会员
UID 97070
性别 男
状态 离线
用论坛的搜索功能,搜索ini,可找到如下链接:
http://www.cn-dos.net/forum/viewthread.php?tid=25789&fpage=1&highlight=ini
4 发表于 2008-10-18 09:13 ·  中国 江苏 南通 电信
新手上路
积分 6
发帖 6
注册 2008-10-18 00:17
17年会员
UID 128622
性别 男
状态 离线
郁闷 看了半天这个没看明白
5 发表于 2008-10-18 09:16 ·  中国 江苏 南通 电信
新手上路
积分 6
发帖 6
注册 2008-10-18 00:17
17年会员
UID 128622
性别 男
状态 离线
我明白思路 但是对dos不太了解 不会写

高手能不能帮忙启发以下

设置变量 变量从 ini里 读取 开放=1
如果变量是1 则执行a.bat 如果是0 则执行b.bat
6 [数据库] 发表于 2008-10-18 09:29 ·  中国 江苏 南通 电信
新手上路
积分 6
发帖 6
注册 2008-10-18 00:17
17年会员
UID 128622
性别 男
状态 离线
@echo off
for /f "usebackq" %%i in (`type 开关.ini ^| find /i "开放="`) do set %%i
echo 数值是: %开放%

这个我凑出来了 下面开始判断 这个 %开放% 是否是1 还是 0 是1就执行a.bat 是0就执行b.bat
请问接下来怎么写,谢谢
7 发表于 2008-10-18 10:06 ·  中国 江西 赣州 电信
初级用户
积分 80
发帖 45
注册 2006-09-22 22:28
19年会员
UID 63398
性别 男
来自 jiangxi
状态 离线
findstr /i "开放=1" "C:\开关.ini" && start a.bat
findstr /i "开放=0" "C:\开关.ini" && start b.bat

[ Last edited by ccily2701 on 2008-10-18 at 10:07 ]
8 发表于 2008-10-18 10:12 ·  美国 惠普HP
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
@echo off
for /f "tokens=2 delims==" %%a in ('findstr "开放=" "a.ini"') do (
set open=%%a
)
if "%open%" equ "1" (
echo 后面的数字是1
) else if "%open%" equ "0" (
echo 后面的数字是0
) else (
echo 后面的数字不是1也不是0
)
pause
9 发表于 2008-10-18 11:04 ·  中国 安徽 马鞍山 联通
金牌会员
★★★★
积分 3,946
发帖 1,884
注册 2006-01-20 13:00
20年会员
UID 49283
性别 男
状态 离线
type C:\开关.ini |find /i "开放=1">nul &&call a.bat&&goto exit
type C:\开关.ini |find /i "开放=0">nul &&call b.bat&&goto exit


:exit
Windows 一键还原
http://www.yjhy.com
10 发表于 2008-10-18 12:25 ·  中国 广东 清远 电信
高级用户
★★★
CMD感染者
积分 691
发帖 383
注册 2008-05-23 00:38
18年会员
UID 119451
性别 男
状态 离线
@echo off
for /f "tokens=2 delims==" %%a in ('find "开放=" "C:\开关.ini"') do set str=%%a
if "%str%" == "1" (call a.bat) else (if "%str%" == "0" (call b.bat) else (echo,数值不是0或1&pause&goto :eof)
11 发表于 2008-10-18 14:03 ·  中国 江苏 常州 武进区 电信
银牌会员
★★★
积分 2,404
发帖 946
注册 2005-09-08 13:44
20年会员
UID 42345
状态 离线

@echo off
findstr /i "^开放=1$" "C:\开关.ini">nul &&echo a.bat||findstr /i "^开放=0$" "C:\开关.ini">nul&&echo b.bat
pause
简单!简单!再简单!
12 发表于 2008-10-19 12:28 ·  中国 江苏 南通 电信
新手上路
积分 6
发帖 6
注册 2008-10-18 00:17
17年会员
UID 128622
性别 男
状态 离线
谢谢各位的帮助 现在就尝试一下 !

再次表示感谢!
论坛跳转: