使用窗口命令删除文本文件的前两行

时间:2013-06-10 20:56:05

标签: sql-server windows-7 batch-file xp-cmdshell

任何人都可以提供一个Windows命令或批处理脚本来删除文本文件中的前两行吗?

我想使用findstr删除文本文件的前两行。我不能使用“更多+2 file.txt> newfile.txt”技巧描述here因为我通过xp_cmdshell调用它并且似乎不起作用(进程经常挂起并永久创建)锁定文件我无法删除)。

我听说过findstr可以使用正则表达式来查找这样的东西,并且我已经看到了一些使用bat文件的尝试。我对这些可能性中的任何一种都持开放态度,但尚未找到可行的解决方案。

1 个答案:

答案 0 :(得分:2)

试试这个:

@echo off &setlocal
set "myfile=%~1"
(for /f "delims=" %%i in ('findstr /n "^" "%myfile%"') do (
    set "line=%%i"
    for /f "delims=:" %%a in ("%%i") do set "row=%%a"
    setlocal enabledelayedexpansion
    set "line=!line:*:=!"
    if !row! gtr 2 echo(!line!
    endlocal
))>newfile
type newfile

顺便说一句。 more的语法:

<file>newfile more +2