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

Sql server 使用窗口命令删除文本文件的前两行,sql-server,windows-7,batch-file,xp-cmdshell,Sql Server,Windows 7,Batch File,Xp Cmdshell,任何人都可以提供一个windows命令或批处理脚本来从文本文件中删除前两行吗 我想使用findstr删除文本文件的前两行。我不能使用上面描述的“more+2 file.txt>newfile.txt”技巧,因为我通过xp\u cmdshell调用它,但这似乎不起作用(进程经常挂起并创建一个永久锁定的文件,我无法删除) 我听说findstr可以使用正则表达式来查找类似的内容,我也见过一些使用bat文件的尝试。我对其中任何一种可能性都持开放态度,但尚未找到有效的解决方案 试试这个: @echo of

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

我想使用findstr删除文本文件的前两行。我不能使用上面描述的“more+2 file.txt>newfile.txt”技巧,因为我通过xp\u cmdshell调用它,但这似乎不起作用(进程经常挂起并创建一个永久锁定的文件,我无法删除)

我听说findstr可以使用正则表达式来查找类似的内容,我也见过一些使用bat文件的尝试。我对其中任何一种可能性都持开放态度,但尚未找到有效的解决方案

试试这个:

@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
顺便说一句,
更多
的语法:

<file>newfile more +2
newfile更多信息+2

可以尝试该建议或其他一些建议来回答相同的问题,如果文本文件不太大,它可能会起作用。@Darth_尝试了这些建议。它们不起作用。1)用文件名替换
findstr
之后的单词
file
。2) 我做了一个编辑,在新文件之前添加了
。非常酷!是否可以将文件名作为参数传入?它主要在批处理中键入文件名时起作用。每次我都必须删除新文件,否则结果会再次追加。我运行批处理时是否可以传入文件名?e、 g.“EndoroBatch.bat myfile.txt”?是的,现在您可以使用文件名作为参数,
newfile
将始终被覆盖。