中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-06 17:11
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 随机抽取文本一行放入另一文件的每一行结尾 查看 669 回复 2
楼 主 随机抽取文本一行放入另一文件的每一行结尾 发表于 2007-11-27 19:57 ·  中国 浙江 温州 电信
中级用户
★★
积分 458
发帖 196
注册 2006-10-05 12:04
19年会员
UID 64614
状态 离线
A,B两个文件各N行

让A文件每行的结尾所添加的内容都是B文件中随机抽取的,该怎么写呢??
2 发表于 2007-11-27 20:38 ·  中国 湖南 娄底 电信
银牌会员
★★★
积分 2,268
发帖 879
注册 2006-12-19 16:23
19年会员
UID 73968
性别 男
状态 离线

@echo off
setlocal enabledelayedexpansion
for /f "tokens=1* delims=:" %%i in ('findstr /n .* a.txt') do set max=%%i
for /f "delims=" %%a in (b.txt) do call :couq&echo %%a!num!
pause
exit
:couq
set /a sui=%random%%%%max%+1
for /f "tokens=1* delims=:" %%i in ('findstr /n .* a.txt') do (
if "%%i"==!sui! set num=%%j&goto :eof
)
goto :eof
致精致简!
3 发表于 2007-11-27 20:51 ·  中国 湖南 长沙 电信
初级用户
积分 67
发帖 32
注册 2007-11-19 12:34
18年会员
UID 103118
性别 男
状态 离线

setlocal enabledelayedexpansion
for /f "delims=" %%a in (A.txt) do (
call :loop
echo %%a!str_temp!>>C.txt
)

:loop
set /a rand_num=%random%%%5+1
set num=1
for /f "delims=" %%i in (B.txt) do (
if !num!==%rand_num% (
set str_temp=%%i
goto :eof
)
set /a num=!num!+1
)
论坛跳转: