标题: [其他] [已解决]批处理如何将文档里面某些内容赋予变量? [打印本页]
作者: 博希 时间: 2011-12-17 23:20 标题: [已解决]批处理如何将文档里面某些内容赋予变量?
本帖最后由 博希 于 2011-12-20 22:16 编辑
求助,我在批处理获取设备信息内容如下,输出内容为a.txt
INFOversion: 0.5
INFOversion-bootloader: 6.13.1002
INFOversion-baseband: 3805.04.03.27_M
INFObattery-status: good
INFObattery-voltage: 3796mV
INFOpartition-layout: Generic
INFOsecurity: off
INFObuild-mode: SHIP
INFOboot-mode: FASTBOOT
INFOcommitno-bootloader: dirty-8a731c6e
INFOhbootpreupdate: 12
INFOgencheckpt: 0
如何将INFOsecurity: 后面的值设为变量,我需要判断获取后,后面的值是on还是off来决定下一步
说的不好,解释不清的话,请多包涵,刚接触这个
感谢2楼和3楼朋友的热心回答,虽然不能解决,但也给了我一个思路
5楼的版主,我使用你的代码提示 此时不应有 =INFOSecurity。
我不知道怎么回事,可能我不会使用吧,我刚接触这个,只会一些简单的,感谢你的回答
还有一个疑问,我看到一个批处理,命令前面加了@,
我只懂@ceho 显示的文字,命令也可以用@吗?这个作用是什么?
例:- @echo pushing files with adb..
- @echo ..
- @adb push flash_image /data/local/tmp/flash_image
- @adb shell chmod 777 /data/local/tmp/flash_image
- @adb push recovery.img /data/local/tmp/recovery.img
- @echo ..
- @echo ..
- @echo writing recovery..
- @adb shell su -c "/data/local/tmp/flash_image recovery /data/local/tmp/recovery.img"
- @echo ..
- @echo removing leftover files..
- @adb shell rm /data/local/tmp/flash_image
- @adb shell rm /data/local/tmp/recovery.img
- @echo finished
- @echo No Errors? Then it should have worked.. reboot into recovery to check
- @pause
复制代码
感谢所有朋友的热心回答,让我学习了很多
谢谢各位的帮助,我看了namejm发的 批处理for语句从入门到精通
终于理解5楼的意思了,问题也解决了
作者: awk 时间: 2011-12-18 09:54
- @echo off
- for /f "tokens=2" %%a in ('findstr "^INFOsecurity:" a.txt') do (
- if "%%a" equ "on" (
- echo,on
- ) else if "%%a" equ "off" (
- echo,off
- ) else (
- echo,not on/off
- )
- )
复制代码
作者: jellyhk 时间: 2011-12-18 10:28
- @echo off
- setlocal enabledelayedexpansion
- for /f "tokens=2" %%a in (a.txt) do (
- set /a a+=1
- if !a! == 7 echo [%%a]
- )
- pause
复制代码
作者: wc726842270 时间: 2011-12-18 11:35
回复 2# awk
有些不明白,为什么不用"echo.%%a",而用了IF呢
作者: cjiabing 时间: 2011-12-18 11:43
for /f "tokens=1,* delims=:" %%a in (a.txt) do if /i %%a=INFOSecurity echo;%%b
作者: awk 时间: 2011-12-18 11:47
回复 3# jellyhk
谁告诉你不能显示的?
作者: awk 时间: 2011-12-18 11:48
回复 4# wc726842270
再看看楼主的要求就明白了
作者: awk 时间: 2011-12-18 11:48
回复 5# cjiabing
你没看懂楼主在问什么
作者: wc726842270 时间: 2011-12-18 11:55
这个“下一步”很纠结,不过个人想法:还是将%%A赋与一个变量,之后在FOR外作判断
作者: bluewing009 时间: 2011-12-19 08:38 标题: 标题
本帖最后由 bluewing009 于 2011-12-19 08:42 编辑
回复 1# 博希
思路:利用findstr找到INFOsecurity取值即可
爪机,写代码困难……没测试
@echo off
for /f "tokens=2" %%a in ('findstr "INFOsecurity" a.txt') do echo %%a
5L回答,请把%%a=改为%%a==
@是表示不回显,只要在文件开头加上@echo off,以后的@都可以省略
作者: cjiabing 时间: 2011-12-19 12:10
原来手机上的,改一下:- for /f "tokens=1,* delims=:" %%a in (a.txt) do if /i %%a=INFOsecurity if /i %%b==on (echo on)&if /i %%b==off echo off
- pause
复制代码
作者: qq2501 时间: 2011-12-19 20:20
回复 10# bluewing009
我替你补全了- @echo off
- for /f "usebackq tokens=2" %%a in (`findstr "INFOsecurity" a.txt`) do echo.%%a
- pause
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |