Board logo

标题: [已结]批处理读取INI里内容后 判断是否是1或0 [打印本页]

作者: ddgg     时间: 2008-10-18 00:42    标题: [已结]批处理读取INI里内容后 判断是否是1或0

求教 批处理读取INI里内容后 判断是否是1或0 然后执行相应程序!

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

;;;;;;;;;;;;;;;;;
[数据库]
开放=1
;;;;;;;;;;;;;;;;;

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

[ Last edited by HAT on 2008-10-19 at 13:25 ]
作者: ddgg     时间: 2008-10-18 00:43
比如我把这个 ini 放在C盘下 名字为  开关

ini路径就为  C:\开关.ini
作者: s11ss     时间: 2008-10-18 01:46
用论坛的搜索功能,搜索ini,可找到如下链接:
http://www.cn-dos.net/forum/view ... 1&highlight=ini
作者: ddgg     时间: 2008-10-18 09:13
郁闷 看了半天这个没看明白
作者: ddgg     时间: 2008-10-18 09:16
我明白思路 但是对dos不太了解 不会写

高手能不能帮忙启发以下

设置变量  变量从 ini里 读取 开放=1
如果变量是1 则执行a.bat 如果是0 则执行b.bat
作者: ddgg     时间: 2008-10-18 09:29    标题: [数据库]

@echo off
for /f "usebackq" %%i in (`type 开关.ini ^| find /i "开放="`) do set %%i
echo 数值是: %开放%

这个我凑出来了 下面开始判断  这个 %开放% 是否是1 还是 0 是1就执行a.bat 是0就执行b.bat
请问接下来怎么写,谢谢
作者: ccily2701     时间: 2008-10-18 10:06
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 ]
作者: HAT     时间: 2008-10-18 10:12

@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

作者: lianjiang2004     时间: 2008-10-18 11:04
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
作者: radem     时间: 2008-10-18 12:25
@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)
作者: terse     时间: 2008-10-18 14:03

@echo off
findstr /i "^开放=1$" "C:\开关.ini">nul &&echo a.bat||findstr /i "^开放=0$" "C:\开关.ini">nul&&echo b.bat
pause

作者: ddgg     时间: 2008-10-19 12:28
谢谢各位的帮助  现在就尝试一下 !

再次表示感谢!