windows - 删除空行

标签 windows batch-file cmd

我正在尝试使用Windows Batch文件从文本文件中删除空行。
原始文件:

Test 1234
Test 12

Test 11

Test 1134
修改后的文件:
Test 1234
Test 12
Test 11
Test 1134
*请注意,原始文件的第一行也是空行。
我已经尝试过了,但是实际上并没有做任何事情:
for /F "delims=" %a in (file.txt) do echo %a

最佳答案

一个简单的解决方案是:

@echo off
if exist "file.txt" %SystemRoot%\System32\findstr.exe /R "^." "file.txt" >"file.tmp"
if exist "file.tmp" for %%I in ("file.tmp") do if %%~zI == 0 (del "file.tmp") else move /Y "file.tmp" "file.txt"
FINDSTR 运行正则表达式查找行首的至少一个字符的行,因此 FINDSTR 输出所有不为空的行。 FINDSTR 的输出重定向到临时文件file.tmp中。
创建的临时文件将完全替换输入文件(存在输入文件),并且不为空,这意味着在输入文件中至少找到了一个非空行。临时文件在创建时即被删除,但为空文件。
为了了解所使用的命令及其工作方式,请打开command prompt窗口,在其中执行以下命令,并非常仔细地阅读每个命令显示的所有帮助页面。
  • del /?
  • echo /?
  • findstr /?
  • for /?
  • if /?
  • move /?

  • 另请参阅有关Using command redirection operators的Microsoft文档,以获取有关重定向运算符>的说明。

    关于windows - 删除空行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62722491/

    相关文章:

    windows - 批处理脚本中没有扩展名的文件名

    windows - 如何使用命令行更改 Windows 服务的启动类型

    c# - XAML 中 Windows 8 商店应用程序中的 TreeView

    bash - Bash 是否有 Batch 的 msg * 等价物?

    loops - 在 cmd 中循环 curl

    java - Jar 文件无法加载或找不到主类

    java - 从java执行python

    windows - 在 WinDbg 中设置断点失败

    c++ - 全局 vector C++

    delphi - 使用 Delphi 或 FFMpeg 从图像序列创建电影