Windows 배치 스크립트의 텍스트 파일에서 항상 'TRAILER'로 시작하는 마지막 줄 삭제

Windows 배치 스크립트의 텍스트 파일에서 항상 'TRAILER'로 시작하는 마지막 줄 삭제

Windows 배치 스크립트를 사용하여 텍스트 파일에서 마지막 줄을 제거하고 싶습니다. 마지막 줄은 항상 'TRAILER|'와 같습니다. 어떻게 하면 달성할 수 있나요? 내 .txt 파일은 다음과 같습니다.

1220|6963|트럭|5760|

1221|6964|트럭|1440|

1220|6965|트럭|2880|

1221|6966|트럭|2880|

1221|6967|트럭|2880|

트레일러|5|

답변1

나는 다음과 같이 작성하여 귀하의 방식대로 시도했습니다.

findstr /v TRAILER %SFTP_INDIR%\Location*.txt > %IN_DIR%\loc.txt

여기%SFTP_INDIR% = D:\Batch\Batch_FWK\SFTP\inbox.

출력 파일 loc.txt에는 현재 마지막 레코드가 포함되어 있지 않지만 TRAILER|5|출력 파일에 다음과 같이 각 레코드가 인쇄되었습니다.

D:\Batch\Batch_FWK\SFTP\inbox\Location.20150528060210.txt:1220|6963|TRUCK|5760|

그만큼답변~에 의해로미오 니노프

findstr /v TRAILER filename >newfilename

당신이 원하는대로 작동오직마지막 줄을 제거할 때하나의파일.

이 때문입니다:

두 개 이상의 파일을 검색하면 결과에는 해당 텍스트가 발견된 파일 이름이 앞에 붙습니다. 요청이 명시적으로 단일 파일에 대한 것이었거나 파이프 입력 또는 리디렉션된 입력을 검색하는 경우 파일 이름은 인쇄되지 않습니다.

이 제한을 해결하려면 for명령을 사용하여 여러 단일 파일을 처리하고 결과를 하나의 파일로 출력할 수 있습니다.

배치 파일에서 다음 명령을 시도해 보십시오.

for /f "tokens=*" %%a in ('dir /b "%SFTP_INDIR%\Location*.txt"') do findstr /v TRAILER %%a >> %IN_DIR%\loc.txt

명령줄에서 실행하는 %%경우 %.


원천findstr

관련 정보