中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [已结]给txt文件中的每行前面加一个固定的字母
作者:
标题: [已结]给txt文件中的每行前面加一个固定的字母 上一主题 | 下一主题
cnlssj
新手上路





积分 2
发帖 2
注册 2008-11-27
状态 离线
『楼 主』:  [已结]给txt文件中的每行前面加一个固定的字母

大家好,小弟有事相求!小弟的问题如下:

给txt文件中的每行前面加一个固定的字母,

比如一个txt文件中的内容是:


                  1.windowsXP
                  2.windows2000
                  3.windows98
                  4.unix
                  5.linux
                  6....
                  7...
                            (尽可能更多……)
                  
然后给每行前面加一个固定的字母  : <a>

           让txt文本文件中的内容变成:


                  <a> 1.windowsXP
                  <a>2.windows2000
                  <a>3.windows98
                  <a>4.unix
                  <a> 5.linux
                  <a> 6....
                  <a> 7...
                            (尽可能更多……)

小弟先谢谢大家了!

[ Last edited by HAT on 2008-12-2 at 13:55 ]

2008-11-28 16:57
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
moniuming
银牌会员

永远的菜鸟



积分 1335
发帖 574
注册 2007-11-27
来自 广西
状态 离线
『第 2 楼』:  


@echo off
set "str=^<a^>"&set "file=2222.txt"
for /f "delims=" %%a in (%file%) do (
  if not defined dos (
    set dos=cndos
    >%file% echo %str%%%a
  ) else (
    >>%file% echo %str%%%a
  )
)
start "" %file%


   此帖被 +2 点积分    点击查看详情   
评分人:【 HAT 分数: +2  时间:2008-12-2 13:56


2008-11-28 17:13
查看资料  发短消息 网志   编辑帖子  回复  引用回复
wangff
初级用户





积分 134
发帖 54
注册 2008-11-19
状态 离线
『第 3 楼』:  

好象会删掉空行

2008-11-28 17:51
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wangff
初级用户





积分 134
发帖 54
注册 2008-11-19
状态 离线
『第 4 楼』:  

最后要加上set dos=否则第二次运行变追加

2008-11-28 18:19
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
aiqian2008
初级用户





积分 35
发帖 22
注册 2008-10-11
状态 离线
『第 5 楼』:  

试试这个,注意"!"会跑没掉.
@echo off&setlocal enabledelayedexpansion
for /f "tokens=1* delims=:" %%i in ('findstr /n "." test.txt') do (
    set /a n+=1
    if %%i gtr !n! call :loop %%i
    echo.^<a^>%%j>>"test111.txt"
)
exit

:loop
echo.>>"test111.txt"
set /a n+=1
if %1 gtr %n% goto loop
goto :eof


   此帖被 +2 点积分    点击查看详情   
评分人:【 HAT 分数: +2  时间:2008-12-2 13:56


2008-11-28 19:10
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
cnlssj
新手上路





积分 2
发帖 2
注册 2008-11-27
状态 离线
『第 6 楼』:  谢谢大家@!

谢谢你们的帮忙

2008-12-2 13:41
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wangff
初级用户





积分 134
发帖 54
注册 2008-11-19
状态 离线
『第 7 楼』:  


@echo off
Setlocal Enabledelayedexpansion
set str=^<a^>&set dos=&set fn=9.txt
for /f "tokens=*" %%i in ('findstr /n "$" %fn%') do (
   set aa=%%i&set aa=!aa:*:=!
   if not defined dos (
      set dos=cndos
      if defined aa (echo !str!!aa!>%fn%) else echo.>%fn%
   ) else if defined aa (echo !str!!aa!>>%fn%) else echo.>>%fn%
)
拼的,不好意思.去掉了过渡文件

2008-12-4 10:41
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: