[问题] 如何利用batch档修改档案内容?

楼主: myrahugh (空)   2014-11-27 17:05:10
请问大家batch档的指令
目前有个档案 , 假如档名是 a.sdl
里面有一堆token设定值
然后我要用batch档去修改其中一个设定值
(Name = "PLATFORM_TYPE" 的这个Value值, 从0改1)
EX :
TOKEN
Name = "....."
Value = "0"
Help = ""
TokenType = Boolean
TargetMAK = Yes
TargetH = Yes
End
...
...
...
...
TOKEN
Name = "PLATFORM_TYPE"
Value = "0"
Help = ""
TokenType = Boolean
TargetMAK = Yes
TargetH = Yes
End
...
...
...
查了一下google, 知道有 findstr 可以用
FINDSTR [/B] [/E] [/L] [/R] [/S] [/I] [/X] [/V] [/N] [/M] [/O] [/P] [/F:file]
[/C:string] [/G:file] [/D:dir list] [/A:color attributes]
[/OFF[LINE]] 字串 [[drive:][path]filename[ ...]]
例如,'FINDSTR "hello there" x.y' 将会在档案 x.y 中搜寻 "hello",或"there"。
'FINDSTR /C:"hello there" x.y' 将会在档案 x.y 中搜寻"hello there"。
可是我要找的是 Name = "PLATFORM_TYPE" (已经有双引号...)
这样会完全找不到....
所以我想到笨笨的方法只有找两次 >"<a
findstr /N /I /C:"PLATFORM_TYPE" a.sdl > b.txt
findstr /I /C:"Name = " b.txt > c.txt
然后c.txt 会印出我要找的 Name = "PLATFORM_TYPE" 以及他所在的行数
EX : 2223: Name = "PLATFORM_TYPE"
原本的想法是找到这行(2223)后
就可以把2222 ~ 2229 全砍掉
在档案最下面再自己重新把这个token设定值加上去
(我承认这方法很笨.....)
可是我要怎么把c.txt 中的 2223: Name = "PLATFORM_TYPE"
只知道2223 这个数字??? 并把它储存成一个变量?
或是.... 有没有更简单一点的方法阿???
因为又不能直接找 Value = "0" , 因为这支档案中也有很多token的设定值是0
谢谢大家 QQ

Links booklink

Contact Us: admin [ a t ] ucptt.com