如何从批处理文件中的文本文件中删除额外的逗号?

时间:2013-12-11 07:54:39

标签: batch-file batch-processing

我正在尝试从文本文件中的行尾删除额外的逗号。以下是我的方法:

set "n=%~,"
for %%t in (*.txt) do (
findstr /v /r /c:"$[%n%]*$" > res.txt
)

但它没有替换文本文件中的额外逗号。文本文件的内容如下:

abc,asd,123,
1234,prq,456,,,,,
jkl,abc,9876,,,
5679,3459,gjh,,

我想要预期的输出如下:

abc,asd,123
123,prq,456
jkl,abc,9878
5679,3459,gjh

2 个答案:

答案 0 :(得分:2)

这使用了来自 - https://www.dropbox.com/s/qidqwztmetbvklt/repl.bat

的名为repl.bat的帮助程序批处理文件

repl.bat放在与批处理文件相同的文件夹中或放在路径上的文件夹中。

@echo off
for %%t in (*.txt) do (
   type "%%t" |repl ",*$" "" >> res.tmp
)
ren res.tmp res.txt

答案 1 :(得分:1)

我认为substring将帮助您完成它:

@echo off
setlocal EnableDelayedExpansion

for %%a in (*.txt) do (
    set txtPath=%%~fa
    echo !txtPath!
    for /f %%b in ('type "!txtPath!"') do (
        set line=%%b
        set output=!line!
        if "!line:~-1!"=="," (
            for /l %%i in (1,1,1000) do if "!output:~-1!"=="," set output=!output:~0,-1!
        )
        echo !output!>> res.txt
    )
)

如上面的代码所示,它将有助于修剪多达1,000个不需要的尾随逗号,并将格式化的输出放置到文本文件中。有关批处理字符串操作的更多信息,请参阅此link。希望它有所帮助。