2013-06-10 5 views
0

누구나 텍스트 파일에서 상위 두 행을 제거하는 Windows 명령 또는 일괄 스크립트를 제공 할 수 있습니까?창 명령을 사용하여 텍스트 파일의 처음 두 줄을 삭제하십시오.

findstr을 사용하여 텍스트 파일의 처음 두 줄을 제거하고 싶습니다. 나는 "more +2 file.txt> newfile.txt"트릭은 내가 xp_cmdshell을 통해 이것을 호출했기 때문에 here을 설명하고 그것을 사용할 수 없다. (프로세스는 종종 멈추고 영구적으로 잠긴 파일을 생성한다. t 삭제).

findstr이 이런 식으로 정규 표현식을 사용할 수 있다고 들었는데, 박쥐 파일을 사용하여 시도한 것을 보았습니다. 나는 이러한 가능성 중 하나를 열어 보았지만 아직 해결 방법을 찾지 못했습니다. BTW

@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 

:

+0

이 제안 [여기]를 시도 할 수는 (http://stackoverflow.com/a/5451058/119246) 또는 동일한에 대한 대답에서 다른 사람의 일부, 그것은 텍스트 파일 경우 작동하지 않을 수 있습니다 거대하지 않다. –

+0

@Darth_Continent는 이러한 제안을 시도했습니다. 그들은 작동하지 않습니다. – FistOfFury

답변

2

이보십시오. more 구문 :

<file>newfile more +2 
+0

오류가 발생했습니다. FINDSTR : 파일을 열 수 없습니다. – FistOfFury

+0

1) findstr 뒤에 단어'file'을 파일 이름으로 바꿉니다. 2) 편집을하고,'newfile '앞에'>'를 추가했습니다. – Endoro

+0

매우 근사하다! 인수로 파일 이름을 전달할 수 있습니까? – FistOfFury