bat实现删除文本中的空行、空格、制表符、最后一行空行

admin 轻心小站 关注 LV.19 运营
发表于DOS/BAT教程版块 教程

在Windows批处理(batch)文件中,可以使用一些文本处理命令来删除文本文件中的空行、空格、制表符和最后一行空行。下面是一个示例脚本,展示了如何实现这些操作:@echo off setlocal

在Windows批处理(batch)文件中,可以使用一些文本处理命令来删除文本文件中的空行、空格、制表符和最后一行空行。下面是一个示例脚本,展示了如何实现这些操作:

@echo off
setlocal enabledelayedexpansion

:: 设置输入文件名和输出文件名
set "input_file=example.txt"
set "output_file=cleaned_example.txt"

:: 清除输出文件内容
echo. > "%output_file%"

:: 读取每一行并处理
for /f "tokens=*" %%a in ('type "%input_file%"') do (
    set "line=%%a"
    set "line=!line: =!"
    set "line=!line:	=!"
    set "line=!line:	=!"

    :: 检查是否为空行或只包含空格/制表符
    if not "!line!"=="" (
        echo(!line! >> "%output_file%"
    )
)

:: 检查并删除最后一行的空行(如果存在)
powershell -Command "$content = Get-Content '%output_file%'; $content = $content -replace '(?ms)(^|\r?\n)+$'; Set-Content -Path '%output_file%' -Value $content"

endlocal

这个批处理脚本执行了以下操作:

  1. 设置了输入文件名(example.txt)和输出文件名(cleaned_example.txt)。

  2. 使用echo. > "%output_file%"命令清除了输出文件的内容。

  3. 使用for /f循环读取输入文件的每一行。

  4. 在循环内部,使用set命令和变量替换功能来删除每行中的空格和制表符。这里假设空格和制表符是由空格( )和制表符( )表示的。

  5. 检查处理后的行是否为空(不包含任何字符)。如果不为空,则将该行追加到输出文件中。

  6. 使用PowerShell的命令来删除输出文件最后一行的空行。这里使用了正则表达式来匹配文件末尾的一个或多个空行,并将其替换为空。

请注意,这个脚本假设空格和制表符是由空格字符和制表符字符表示的。如果你的文本文件中的空格或制表符有其他表示方式,你需要相应地调整脚本中的替换命令。

此外,由于批处理文件的功能有限,对于复杂的文本处理任务,可能需要使用更强大的脚本语言或工具,如Python或Perl。

文章说明:

本文原创发布于探乎站长论坛,未经许可,禁止转载。

题图来自Unsplash,基于CC0协议

该文观点仅代表作者本人,探乎站长论坛平台仅提供信息存储空间服务。

评论列表 评论
发布评论

评论: bat实现删除文本中的空行、空格、制表符、最后一行空行

粉丝

0

关注

0

收藏

0

已有0次打赏