批处理脚本用前5行覆盖文件

时间:2014-12-16 16:55:53

标签: batch-file

我有一个带有x行的文件,我想用前5行删除其余文件来覆盖该文件。我需要使用批处理脚本执行此操作。对此的任何帮助将不胜感激。

由于 库马尔

2 个答案:

答案 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