批处理文件在特定文本文件的行中

时间:2013-03-31 23:28:00

标签: batch-file dos

如何删除文本中每行的一部分?

示例:

</td><td valign="top" style="font-weight:bold;">1100052719
</td><td valign="top" style="font-weight:bold;">1100053714
</td><td valign="top" style="font-weight:bold;">1100053777

我想这样做:

1100052719,1100053714,1100053777

我有一个名为POs.txt的文件,可以看到所有这些数据。

3 个答案:

答案 0 :(得分:0)

@echo off
setlocal enabledelayedexpansion
set OutputString=
for /f "tokens=3 delims=>" %%A in (Pos.txt) do set OutputString=!OutputString!%%A,
set OutputString=%OutputString:~0,-1%
echo.%OutputString%
endlocal
pause

答案 1 :(得分:0)

作为解释......

    setlocal enabledelayedexpansion

允许我们将变量名称括起来!表示我们要在运行时而不是在加载时扩展变量。

    set OutputString=

使用初始空值定义变量OutputString。

    for /f "tokens=3 delims=>" %%A in (Pos.txt) do set OutputString=!OutputString!%%A,

我们要保留的文字是使用&gt;分隔符时的第3个标记 对于每次迭代(Pos.txt中的文本行),我们将第3个字段(标记)附加到OutputString以及逗号

    set OutputString=%OutputString:~0,-1%

从第一个字符开始并保存除OutputString的最后一个字符之外的所有字符

,删除尾随逗号。

答案 2 :(得分:0)

代码1:

@echo off
setlocal enabledelayedexpansion
set OutputString=
for /f "delims=" %%a in (Pos.txt) do (
    set line=%%a
    set OutputString=!OutputString!!line:*">=!,
)
set OutputString=%OutputString:~0,-1%
echo,%OutputString%
pause

代码2:

@echo off
setlocal enabledelayedexpansion
set OutputString=
for /f "delims=" %%a in (Pos.txt) do (
    set line=%%a
    set OutputString=!OutputString!!line:~-10!,
)
set OutputString=%OutputString:~0,-1%
echo,%OutputString%
pause