Board logo

标题: 刚搜索下以前的帖子,没看懂。删除文本每行最后 [打印本页]

作者: jiehi007     时间: 2009-9-2 22:57    标题: 刚搜索下以前的帖子,没看懂。删除文本每行最后

一个文本文件,想把它里面的每行的最后一个字符 ;  删掉, 再在每行的开头 添加 一个字符串,比如 DB 两个字符。谢谢
作者: wdmzjhk     时间: 2009-9-2 23:25
for可以办到
作者: yishanju     时间: 2009-9-3 00:00
在行前插入
fr -ric:"^" -t:"db" 1.txt
作者: tireless     时间: 2009-9-3 00:11

@echo off
set "文本=a.txt"
set "字串=DB"
set 删除=1

if "%~1" neq "" set "文本=%~1"
findstr /n .* "%文本%" > "%temp%\~tmp"

(for /f "usebackq delims=" %%a in ("%temp%\~tmp") do (
    set var=%%a
    setlocal enabledelayedexpansion
    if "!var:*:=!" neq "" (
        set var=!var:*:=!
        echo;!字串!!var:~,-%删除%!
    ) else echo;
    endlocal
))>"%文本%"

del "%temp%\~tmp"
[ Last edited by tireless on 2009-9-3 at 04:03 ]
作者: jiehi007     时间: 2009-9-3 01:02    标题: 哈哈,谢谢大家给我的帮助,

非常感谢你们,可以达到要求了,我再想想还需要什么功能,我再发一新帖。
我把批处理文件和a.txt文件 放一个目录下,能达到要求。我拖动a.txt文件到 批处理文件上,就没变化呢。
能否 再增加一个功能: 在文本每行最后 也加一个字符串,比如 分号 ; ,使每行最后的 ; 都右对齐呢 ?
作者: tireless     时间: 2009-9-3 04:06    标题: re 5 楼

修改了 4 楼代码,可以拖拽了。
如果要在行尾添加,把“echo;!字串!!var:~,-%删除%!”改成“echo;!字串!!var:~,-%删除%!”,但是要对齐有些麻烦...

[ Last edited by tireless on 2009-9-3 at 04:07 ]
作者: yishanju     时间: 2009-9-3 04:13
-_-楼上的真贴心啊