我想在一个文本文档的每一行的开头和结尾加上特定的字符串,请问如何实现?
[ Last edited by liuwei723 on 2006-4-26 at 15:09 ]
[ Last edited by liuwei723 on 2006-4-26 at 15:09 ]
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

Originally posted by bagpipe at 2006-4-28 11:44:
@echo off
setlocal enabledelayedexpansion
set mm=%1
set /p start=输入每行开头要添加的字符串:
set /p end=输入每行结为要添加的字符串:
for /f "tokens=1,2* delim ...
Originally posted by bagpipe at 2006-4-30 12:37:
http://www.cn-dos.net/forum/viewthread.php?tid=19331&fpage=1&highlight=%2Bbagpipe
论坛中好像很多介绍命令的,自己好好看看,主要是对实践一下,上面的 ...
SFile = GetFileName()
Msg = "替换字符格式为:" & vbtab & "str1:=str2" & vblf
Msg = Msg & "省略str2可以删除str1"
Str = inputbox(Msg,"输入要插入的字符:")
if len(Str) = 0 then Wscript.Quit
'先把文件读到StrOld中,然后把处理后的字符串StrNew写回到文件
with CreateObject("Scripting.FileSystemObject")
set F = .OpenTextFile(SFile,1,True)
StrOld = F.ReadAll
set F = Nothing
set F = .OpenTextFile(SFile,2,True)
if len(Str) > 1 and instr(Str,":=") then
StrArray = split(Str,":=")
StrNew = Replace(StrOld,StrArray(0),StrArray(1))
else
StrNew = InertStr()
end if
F.Write(StrNew)
end with
'插入字符函数,依次读入每个字符并判断是否为空格,回车,换行
Function InertStr()
for i = 1 to len(StrOld)
if mid(StrOld,i,1) = space(1) or _
asc(mid(StrOld,i,1)) = 13 or _
asc(mid(StrOld,i,1)) = 10 then
strTmp = strTmp & mid(StrOld,i,1)
else
strTmp = strTmp & mid(StrOld,i,1) & Str
end if
next
InertStr = strTmp
End Function
'获得被操作文件名
Function GetFileName()
if WScript.Arguments.Count <> 0 Then
GetFileName = Wscript.Arguments(0)
else
with CreateObject("UserAccounts.CommonDialog")
.Filter = "文本文件|*.txt|所有文件|*.*"
.ShowOpen
GetFileName = .Filename
end with
end if
if len(trim(GetFileName)) = 0 then Wscript.Quit
End Function
Originally posted by vkill at 2006-11-4 07:21 AM:
这个问题sed 解决最好,我感觉~任何字符都经过测试,一句话就可以
sed "s/^/\/span>/;s/\x24/\/span>/" test.txt
sed下载:http://www.student.northpark ... 替换的内容能写到原来的文件中吗? 我试了一下,只能在命令行窗口中显示, 不会用 sed,还望指教。