中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-08 15:08
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 求一修改TXT文件指定的某行的数字 查看 834 回复 4
楼 主 求一修改TXT文件指定的某行的数字 发表于 2008-04-24 18:20 ·  中国 云南 昆明 电信
初级用户
★★
积分 130
发帖 59
注册 2007-12-25 20:32
18年会员
UID 106775
性别 男
状态 离线
X]公 告
Y]广 告


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

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

上面红色的部分是不变的
2 发表于 2008-04-24 18:57 ·  中国 江苏 常州 溧阳市 电信
银牌会员
★★★
积分 2,404
发帖 946
注册 2005-09-08 13:44
20年会员
UID 42345
状态 离线
测试行号是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!"=="









[ Last edited by terse on 2008-4-24 at 07:10 PM ]
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
yhshiro +2 2008-04-25 13:07
简单!简单!再简单!
3 发表于 2008-04-24 19:04 ·  中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
积分 3,105
发帖 1,276
注册 2008-03-08 13:00
18年会员
UID 112398
性别 男
状态 离线
如要重写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 ]
批处理之家新域名:www.bathome.net
4 发表于 2008-04-24 19:23 ·  中国 云南 昆明 电信
初级用户
★★
积分 130
发帖 59
注册 2007-12-25 20:32
18年会员
UID 106775
性别 男
状态 离线
非常谢谢。。。
...不过好象有的还是对不住你。。我今天的分加完了。。

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


对不起哈
5 发表于 2008-04-24 20:42 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
19年会员
UID 79003
性别 男
状态 离线
貌似没有用delims==]的方式的……

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