我正在尝试从文本文件中的行尾删除额外的逗号。以下是我的方法:
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
答案 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。希望它有所帮助。