Windows 배치에서 텍스트 파일의 특정 줄을 인쇄하는 상당히 효율적인 방법을 찾으려고합니다. Windows 배치이어야하며 다른 도구 (gwk.exe, perl, python, javascript 등)가 없어야합니다. 나는 꽤 길 수있는 줄 번호 (1, 7, 15, 20 등)의 목록을 가지고있다.Windows에서 텍스트 파일의 특정 줄 인쇄 일괄
아이디어가 있으십니까?
감사합니다.
Windows 배치에서 텍스트 파일의 특정 줄을 인쇄하는 상당히 효율적인 방법을 찾으려고합니다. Windows 배치이어야하며 다른 도구 (gwk.exe, perl, python, javascript 등)가 없어야합니다. 나는 꽤 길 수있는 줄 번호 (1, 7, 15, 20 등)의 목록을 가지고있다.Windows에서 텍스트 파일의 특정 줄 인쇄 일괄
아이디어가 있으십니까?
감사합니다.
다음은 수행 방법을 보여주는 스크립트입니다. 예상대로
line 1
line 7
line 15
line 20
: 1에서 24까지의 N에 대한 line N
를 포함하는 파일을 통해 실행하면
@setlocal enableextensions enabledelayedexpansion
@echo off
set lines=1 7 15 20
set curr=1
for /f "delims=" %%a in ('type infile.txt') do (
for %%b in (!lines!) do (
if !curr!==%%b echo %%a
)
set /a "curr = curr + 1"
)
endlocal
, 당신이 얻을 그것은 세계에서 가장 효율적인 아니지만 명령 스크립트는 거의 :-) 없습니다 .
내선 번호가 에 대해 여러 번 실행되므로 파일의 행마다 줄을 사용하므로 매우 큰 수의 줄 번호에는이 옵션이 사용되지 않습니다.
당신은 간단한 배치 파일의 몇 가지를 사용할 수 있습니다
main.bat :
@echo off
set k=0
for /f "tokens=1*" %%i in (%1) do call helper %%i %%j
helper.bat :
@echo off
for /f %%j in (numbers.txt) do if /I %k% equ %%j echo %1 %2
set /A k=%k%+1
이 그 다음을 포함하는 numbers.txt 파일을 제공 한 줄에 하나씩 줄 번호를 입력하고 다음과 같이 호출하십시오.
main.bat my_file.txt
여기서 my_file.txt는 회선을 추출 할 파일입니다.
고마워요,하지만 이것은 다른 대답과 같은 방식으로 일하는 동안 일을 혼란스럽게합니다. – Yon
감사합니다 paxdiablo! 실제로 많은 수의 라인에서는 문제가 있지만 작은 수에서는 괜찮습니다. – Yon