批量删除文本文件的最后一个换行符 [英] Remove last new line character of text file in batch
本文介绍了批量删除文本文件的最后一个换行符的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个包含nany文本文件的目录,每个文本文件都包含一个URL。我想将包含换行符的每个URL写入一个文本文件。 因此,我创建了两个批处理文件:
job.bat:
@echo off
forfiles /m *.m3u /c "cmd /c output.bat @file"
output.bat:
@echo off
type %1 >> urls.txt
echo. >> urls.txt
当我运行job.bat时,所有URL都写入文本文件。
但有一个问题:在文本文件的结尾处,文本文件的结尾处将有一个新行,即使后面没有其他行。如何删除urls.txt结尾处的换行符? Urls.txt应该如下所示:我无法插入urls.txt的屏幕快照,因为它需要滚动。但我可以告诉你,它包含所有URL,一个接一个,没有任何空格或换行符分隔。
可以找到确切的.m3u文件on a subpage of the homepage of a German radio station(以.m3u结尾)。因此,我不包含任何M3U文件的屏幕截图。
推荐答案
如果您只有几个文件(受URL的字符串长度限制,与变量环境的最大大小有关),并且您的URL不包含!
字符(将被删除),您可能会这样做:
@Echo Off & SetLocal EnableExtensions EnableDelayedExpansion
For /F %%G In ('Copy /Z "%~f0" NUL') Do Set "cr=%%G" & (Set lf=^
% 0x0A %
)
Set "fl=" & For /F Delims^=^ EOL^= %%G In ('Type *.m3u') Do If Not Defined fl (
Set "fl=%%G") Else Set "fl=!fl! %%G"
If Defined fl Set /P "=%fl: =!cr!!lf!%" 0<NUL 1> "urls.txt"
如果您的文件不包含行终止符或行结束符(我已确定它们似乎是一致的),则只需替换不同的字符或字符序列:
@Echo Off & SetLocal EnableExtensions EnableDelayedExpansion
For /F %%G In ('Copy /Z "%~f0" NUL') Do Set "cr=%%G" & (Set lf=^
% 0x0A %
)
Set "fl=" & For /F Delims^=^ EOL^= %%G In ('Type *.m3u') Do Set "fl=%%G"
If Defined fl Set /P "=%fl:3http:=3!cr!!lf!http:%" 0<NUL 1> "urls.txt"
这篇关于批量删除文本文件的最后一个换行符的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文