无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 5898|回复: 8
打印 上一主题 下一主题

cmd下,如何在文本的指定行添加内容

[复制链接]
跳转到指定楼层
1#
发表于 2011-11-8 23:35:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
XP sp3 cmd下,各位大大,如题。比如将123添加到文件1.txt的第二行和倒数第二行,谢谢!

[ 本帖最后由 zedoor 于 2011-11-9 20:09 编辑 ]
2#
发表于 2011-11-9 07:53:27 | 只看该作者
是纯dos下,还是 cmd下?
重新生成一个文件可以么?

我的思路:用awk 可以轻松处理文本流数据。可以通过 printf 函数输出换行和回车符号,可以确定文本总行数并将文本流逐行操作。

[ 本帖最后由 dos时代菜鸟 于 2011-11-9 07:58 编辑 ]
回复

使用道具 举报

3#
 楼主| 发表于 2011-11-9 20:07:43 | 只看该作者
原帖由 <i>dos时代菜鸟</i> 于 2011-11-9 07:53 发表 <a href="http://bbs.wuyou.net/redirect.php?goto=findpost&pid=2334441&ptid=202142" target="_blank"><img src="http://bbs.wuyou.net/images/common/back.gif" border="0" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open(this.src);}" onmousewheel="return imgzoom(this);" alt="" /></a><br />
是纯dos下,还是 cmd下?<br />
重新生成一个文件可以么?<br />
<br />
我的思路:用awk 可以轻松处理文本流数据。可以通过 printf 函数输出换行和回车符号,可以确定文本总行数并将文本流逐行操作。
<br />

XP sp3环境,cmd下,不要生成新文件,菜鸟望指教。

[ 本帖最后由 zedoor 于 2011-11-9 20:11 编辑 ]
回复

使用道具 举报

4#
发表于 2011-11-9 21:48:14 | 只看该作者
我说的生成新文件就是:先生成一个符合要求的新文件,然后用这个新文件覆盖旧文件。
对于习惯了鼠标操作的人,建立新文件再覆盖旧文件再删除新文件可能觉得很麻烦,但是在 cmd 下用一句 ren 就可以解决。

另外,如果在 cmd 下进行文件内容操作,我建议还不如用 vbs 更快捷。

[ 本帖最后由 dos时代菜鸟 于 2011-11-9 21:49 编辑 ]
回复

使用道具 举报

5#
发表于 2011-11-9 22:47:42 | 只看该作者
不知楼主是不是要在第二行和倒数第二行插入新的一行(内容123)。如果是,下面的代码不妨一试(假设要修改的文件c:\abc.txt):
-----------------------------分割线--------------------------------
@echo off
setlocal ENABLEDELAYEDEXPANSION
set n=0
set aa=0
for /f "delims=" %%a in (c:\abc.txt) do set /a n=!n!+1
for /f "delims=" %%a in (c:\abc.txt) do (
set /a aa=!aa!+1
set /a n=!n!-1
echo %%a >>c:\tmp.txt
if !aa!==1 echo 123 >>c:\tmp.txt
if !n!==1 echo 123 >>c:\tmp.txt
)
del /q c:\abc.txt
ren c:\tmp.txt abc.txt
pause
-----------------------------分割线--------------------------------

如果只是添加123而不是插入新行,方法类似。比如在第二行和倒数第二行开头添加123:
-----------------------------分割线--------------------------------
@echo off
setlocal ENABLEDELAYEDEXPANSION
set n=0
set aa=0
for /f "delims=" %%a in (c:\abc.txt) do (
set /a aa=!aa!+1
if !aa!==2 (echo 123%%a >>c:\tmp.txt) else echo %%a >>c:\tmp.txt
)
for /f "delims=" %%a in (c:\tmp.txt) do set /a n=!n!+1
for /f "delims=" %%a in (c:\tmp.txt) do (
set /a n=!n!-1
if !n!==1 (echo 123%%a >>c:\tmp1.txt) else echo %%a >>c:\tmp1.txt
)
del /q c:\abc.txt
del /q c:\tmp.txt
ren c:\tmp1.txt abc.txt
pause
-----------------------------分割线--------------------------------

[ 本帖最后由 2011pzn 于 2011-11-10 13:48 编辑 ]
回复

使用道具 举报

6#
发表于 2011-11-10 13:53:24 | 只看该作者
检查了下,楼上的在第二行和倒数第二行开头添加123有点不妥,重新编辑下。
回复

使用道具 举报

7#
 楼主| 发表于 2011-11-24 22:04:56 | 只看该作者
谢谢大家了!!!!!
回复

使用道具 举报

8#
 楼主| 发表于 2011-11-24 22:05:06 | 只看该作者
谢谢大家了!!!!!
回复

使用道具 举报

9#
 楼主| 发表于 2011-11-24 22:07:09 | 只看该作者
谢谢大家帮忙!!!!!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-11-16 18:26

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表