我正在尝试使用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/