請問大家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