楼 主
[已结]逐行读取记事本A,把已读取的行删除,并保存为B
发表于 2008-11-12 10:52 · 中国 广东 东莞 联通
新手上路
★
积分 10 发帖 6 注册 2008-08-10 13:44 17年会员 UID 123103 性别 男
状态 离线
求一个批处理脚本,需要实现下面的功能,请高手不吝赐教哦,谢谢大家。
在与批处理同一目录下放置A.txt,内容为分行的一些序列,数量约1万个。
如:
d45610ad
44cdfjad
4410.874
78910a4d
.......
现在想逐行读取其内容,把读取到的内容输出为变量%str%,同时,把已读取的行从A.txt中删除,并将已读取的行输出为B.txt。
在这个过程中,每运行一次脚本,A.txt就减少一行,B.txt就增加一行。
DOS命令我实在很菜,但我觉得使用DOS执行这样的功能应该比较现实。
再次谢谢大家!:P
[ Last edited by HAT on 2008-11-12 at 21:36 ]
第 2 楼
发表于 2008-11-12 13:00 · 中国 江西 赣州 电信
银牌会员
★★★★
积分 2,025 发帖 1,122 注册 2007-09-05 20:15 18年会员 UID 96653 性别 男
状态 离线
@echo off
for /f "delims=" %%a in (A.txt) do (
set str=%%a
more +1 A.txt > A_tmp.txt
move /y A_tmp.txt A.txt
echo %%a >> B.txt
goto out
)
:out
echo 变量 str 的值为:
echo.
echo %str%
echo.
pause
本帖最近评分记录
(共 1 条)
点击查看详情
评分人 分数 时间
HAT
+2
2008-11-12 21:36
第 3 楼
发表于 2008-11-12 21:34 · 中国 广东 东莞 联通
新手上路
★
积分 10 发帖 6 注册 2008-08-10 13:44 17年会员 UID 123103 性别 男
状态 离线
第 4 楼
发表于 2008-11-12 21:47 · 中国 广东 东莞 联通
新手上路
★
积分 10 发帖 6 注册 2008-08-10 13:44 17年会员 UID 123103 性别 男
状态 离线
再问一下,如何使用random命令产生出N个不会重复的序列呢?
我产生10个随机序列,重复的机率很小,但如果产生上万个同格式的序列则会有1%左右的号是重复的。请问如何避免呢?
@echo off&Setlocal Enabledelayedexpansion
set "var=0123456789abcdef"
for /l %%i in (1 1 8) do (
set /a "n=!random!%%16"
call set "str=!str!%%var:~!n!,1%%"
if %%i equ 4 set "str=!str!-"
)
论坛跳转:
— 请选择 —
站务公告 & 版主讨论
意见反馈 & 网友交流
DOS学习入门 & 精彩文章 (教学室)
DOS疑难解答 & 问题讨论 (解答室)
DOS启动盘 & LOGO技术 (启动盘室)
DOS批处理 & 脚本技术(批处理室)
DOS媒体世界 & 网络技术 (多媒体室)
DOS汉化世界 & 中文系统 (中文化室)
DOS开发编程 & 发展交流 (开发室)
DOS软件下载 & 游戏分享 (下载室)
GRUB4DOS、SYSLINUX及其它启动管理软件讨论专区
其它操作系统综合讨论区
WinPE、PowerShell及其它命令行系统专区
贴图灌水、文学娱乐专区
网络日志(Blog)
论坛回收站
├ 链接失效,待修正