2012-10-01 2 views
2

50 개의 텍스트 파일 중 마지막 페이지를 인쇄해야합니다. 현재 매일 50 개의 텍스트 파일을 하나씩 열어서 각 파일의 마지막 페이지를 인쇄하고 있습니다. 매우 힘든 작업입니다.여러 텍스트 파일의 마지막 페이지를 인쇄하는 일괄 파일

배치 파일을 작성하여이 작업을 수행 할 수 있다는 것을 알고 있지만 일괄 프로그래밍에 대해 완전히 모릅니다.

도움을 주시면 감사하겠습니다.

감사합니다.

+0

화면이나 실제 프린터로 인쇄 하시겠습니까? 또한 텍스트 파일의 "마지막 페이지"는 어떻게 정의합니까? 텍스트 파일은 양식 구분 문자를 사용하여 페이지를 구분할 수 있지만 일반적인 텍스트 파일은 아닙니다. 대부분의 텍스트 파일은 연속적인 연속 선입니다. Anshu의 아이디어를 사용하여 각 파일 끝에 고정 된 수의 줄을 인쇄 할 수 있습니다. – dbenham

답변

3

다음 스크립트 파일 (data.txt로)의 마지막 50 줄 수 있습니다

@echo OFF 

:: Get the number of lines in the file 
set LINES=0 
for /f "delims==" %%I in (data.txt) do (
    set /a LINES=LINES+1 
) 

:: Print the last 50 lines 
set /a LINES=LINES-50 
more +%LINES% < data.txt 

희망을 인쇄 할 것입니다!

+0

+1, 흥미로운 아이디어./f %% N in ('찾기/c/v' '^ dbenham

+0

답변 해 주셔서 감사합니다. 네트워크 프린터로 작업을 전송하는 코드를 알고 있습니까? – wksoh

+0

확인하십시오 _http : //www.robvanderwoude.com/printfiles.php_ 및 _http : //www.tomshardware.com/forum/226619-46-batch-command-print-text-file-network-printer_ – Anshu

0

Anshu의 답변에 아이디어를 플레 싱합니다. 다음은 현재 디렉토리의 모든 .TXT 파일의 마지막 50 줄을 인쇄하는 스크립트입니다. 출력이 기본 프린터로 전송됩니다.

@echo off 
setlocal enableDelayedExpansion 
set "tempFile=%temp%\printEnd " 
set "pageSize=50" 

for %%F in (*.txt) do (
    for /f %%N in ('find /c /v "" ^<"%%F"') do set /a skip=%%N-pageSize 
    if !skip! lss 0 set skip=0 
    >"%tempFile%%%~nxF" more +!skip! "%%F" 
    notepad /p "%tempFile%%%~nxF" 
) 
echo "%tempFile%" 
2>nul del "%tempFile%*" 
+0

감사합니다. 당신의 도움! 이 코드는 매력처럼 작동합니다. 그러나 가로로 인쇄 할 메모장을 만들기 위해 선을 추가 할 수 있습니까? 지금은 세로로 인쇄 중입니다. 감사. – wksoh

+0

@wksoh - 단서가 없습니다. 당신이 풍경을 원한다면, 그것은 당신의 질문에 놓여 져야만했던 것처럼 보입니다. – dbenham

+0

@ wksoh - 아니요. 일괄 적으로 처리 할 수는 없습니다. 이런 식으로하려면'notepad.exe [filename.txt]'를 시작한 다음 VBS를 사용하여 메모장에 적절한 명령을'sendkeys '보내야합니다. –

관련 문제