我有一个带有x行的文件,我想用前5行删除其余文件来覆盖该文件。我需要使用批处理脚本执行此操作。对此的任何帮助将不胜感激。
由于 库马尔
答案 0 :(得分:3)
只要前5行中的每一行都是< = 1021字节长,并且在5行中的任何一行的末尾都没有控制字符:
@echo off
setlocal enableDelayedExpansion
<"test.txt" >"test.txt.new" (
for /l %%N in (1 1 5) do (
set "ln="
set /p "ln="
echo(!ln!
)
)
move /y "test.txt.new" "test.txt" >nul
或者你可以使用我的JREPL.BAT utility - 一个混合的JScript /批处理脚本,它可以在XP以后的任何Windows机器上运行。只要没有线超过2千兆字节,这个解决方案适用于任何大小的文件 - 实际上没有限制。
JREPL.BAT真正用于对文本文件进行正则表达式搜索和替换,但使用它来获取文件的头部或尾部很方便。
jrepl "^" "" /jbegln "quit=(ln>=5)" /f test.txt /o -
答案 1 :(得分:2)
@echo off
set "file_to_process=E:\somefile.txt"
set "first_n_lines=5"
break>"%temp%\empty"&&fc "%temp%\empty" "%file_to_process%" /lb %first_n_lines% /t |more +4 | findstr /B /E /V "*****" >5.txt
rem move /y 5.txt "%file_to_process%"
如果rem
文件符合您的要求,请删除最后一行的5.txt
。