Board logo

标题: 求一修改TXT文件指定的某行的数字 [打印本页]

作者: yhshiro     时间: 2008-4-24 18:20    标题: 求一修改TXT文件指定的某行的数字



  Quote:
[标题][颜色=X]公  告
[标题][颜色=Y]广  告

我要修改上面这行的X  Y把它弄成随机的1~12的随机一个数字,但是2个数字不能一样

两行是分开的不在一起,要能指定修改第几行的这串数字。。。

上面红色的部分是不变的
作者: terse     时间: 2008-4-24 18:57
测试行号是3和4 不知道合你意思不
@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%i in (test.txt) do (
    set "str=%%i"
    set/a m+=1,s+=1
    if !m! equ 3 call:lp
    if !s! equ 4 call:lp
    echo !str!>>test1.txt
)
pause
goto :eof
:lp
set/a n=%random%%%12+1
if defined !n! goto lp
set str=!str:9]=%n%]!&set !n!=!n!
不指定行  也可以下面的 不知道你的X Y 确定否  改个通用的
@echo off&setlocal enabledelayedexpansion
for /f "tokens=1* delims=" %%i in (test.txt) do (
    set str=%%i
    if "!str:~0,8!"=="[标题][颜色=" call:lp
    echo !str!>>test1.txt
)
pause
:lp
    set/a n=%random%%%12+1
    if defined !n! goto lp
    set str=!str:~0,8!%n%!str:~9!
[ Last edited by terse on 2008-4-24 at 07:10 PM ]
作者: bat-zw     时间: 2008-4-24 19:04
如要重写a.txt就要另外修改
@echo off&setlocal enabledelayedexpansion
:begin
set /a a=%random%%%12+1,b==%random%%%12+1
if %a% equ %b% goto begin
for /f "delims=" %%i in (a.txt) do (
     set str=%%i
     set str=!str:X]=%a%]!
     set str=!str:y]=%b%]!
     echo !str!
)
pause>nul
[ Last edited by zw19750516 on 2008-4-24 at 09:52 PM ]
作者: yhshiro     时间: 2008-4-24 19:23
非常谢谢。。。
...不过好象有的还是对不住你。。我今天的分加完了。。

对不起,您最近 24 小时评分数超过 5 点 限制,请返回。


对不起哈
作者: slore     时间: 2008-4-24 20:42
貌似没有用delims==]的方式的……

[ Last edited by slore on 2008-4-24 at 08:46 PM ]