有这样一个需求。
想通过命令行方式修改INI文件中某个参数的赋值,但不想通过notepad,edit等进行人为手工查找替换等操作。这个参数在该INI中名字唯一,但行数不是固定。
想通过命令行方式修改INI文件中某个参数的赋值,但不想通过notepad,edit等进行人为手工查找替换等操作。这个参数在该INI中名字唯一,但行数不是固定。
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!
@echo off
for /f "delims=: tokens=1,2" %%i in ('"findstr /n . 123.txt"') do set %%i=%%j & set col=%%i
for /f "delims=:" %%m in ('"findstr /n /c:"内容" 123.txt"') do set num=%%m
set /a var = num - 1
for /l %%n in (1,1,%var%) do echo %%%%n%% | findstr . >>tmp.txt
echo %%%num%:内容=新内容%% | findstr . >>tmp.txt
set /a var = var + 2
for /l %%e in (%var%,1,%col%) do echo %%%%e%% | findstr . >>tmp.txt
if WScript.Arguments.Count <> 0 Then
myFile = Wscript.Arguments(0)
else
SET oFO = CreateObject("SAFRCFileDlg.FileOpen")
oFO.OpenFileOpenDlg
myFile = oFO.FileName
end if
strOld = InputBox("输入要被替换的文字:")
if Len(Trim(strOld)) = 0 then Wscript.Quit
strNew = InputBox("输入被替换后的文字:")
if Len(Trim(strNew)) = 0 then Wscript.Quit
with CreateObject("Scripting.FileSystemObject")
SET FILE = .OpenTextFile(myFile,1,true)
fStr = FILE.Readall
FILE.Close
fStr = Replace(fStr,strOld,strNew,1,1)
SET FILE = .OpenTextFile(myFile,2,true)
FILE.Write fStr
end with

Originally posted by Climbing at 2006-4-6 21:01:
两位都是抬杠的高手,我对两位的景仰之情同样都如滔滔江水,连绵不绝...
哈哈哈哈哈……