Windows 배치 파일을 사용하여 텍스트 파일에서 첫 줄을 어떻게 읽을 수 있습니까? 파일이 크므로 첫 번째 줄만 처리하고 싶습니다.
답변
다음 은 한 줄이 아닌 n
GNU head
유틸리티 와 같은 파일에서 맨 위 줄 을 인쇄하는 범용 배치 파일 입니다.
@echo off
if [%1] == [] goto usage
if [%2] == [] goto usage
call :print_head %1 %2
goto :eof
REM
REM print_head
REM Prints the first non-blank %1 lines in the file %2.
REM
:print_head
setlocal EnableDelayedExpansion
set /a counter=0
for /f ^"usebackq^ eol^=^
^ delims^=^" %%a in (%2) do (
if "!counter!"=="%1" goto :eof
echo %%a
set /a counter+=1
)
goto :eof
:usage
echo Usage: head.bat COUNT FILENAME
예를 들면 :
Z:\>head 1 "test file.c"
; this is line 1
Z:\>head 3 "test file.c"
; this is line 1
this is line 2
line 3 right here
현재는 빈 줄을 계산하지 않습니다. 또한 8KB의 배치 파일 행 길이 제한이 적용됩니다.
답변
어? imo 이것은 훨씬 더 간단합니다
set /p texte=< file.txt
echo %texte%
답변
너희들 …
C:\>findstr /n . c:\boot.ini | findstr ^1:
1:[boot loader]
C:\>findstr /n . c:\boot.ini | findstr ^3:
3:default=multi(0)disk(0)rdisk(0)partition(1)\WINNT
C:\>
답변
이것을 시도해 볼 수 있습니다.
@echo off
for /f %%a in (sample.txt) do (
echo %%a
exit /b
)
편집
또는 네 개의 데이터 열이 있고 5 번째 행에서 아래로 내려 가고 싶다면 다음을 시도해보세요.
@echo off
for /f "skip=4 tokens=1-4" %%a in (junkl.txt) do (
echo %%a %%b %%c %%d
)
답변
텍스트 파일에서 첫 번째 줄을 읽는 Windows 배치 명령에 대한 대답이있는 thetalkingwalnut 덕분에 다음 솔루션을 생각해 냈습니다.
@echo off
for /f "delims=" %%a in ('type sample.txt') do (
echo %%a
exit /b
)
답변
다른 사람들의 대답을 약간 기반으로합니다. 이제 읽을 파일과 결과를 넣을 변수를 지정할 수 있습니다.
@echo off
for /f "delims=" %%x in (%2) do (
set %1=%%x
exit /b
)
이것은 위와 같이 사용할 수 있음을 의미합니다 (getline.bat라고 가정하면)
c:\> dir > test-file
c:\> getline variable test-file
c:\> set variable
variable= Volume in drive C has no label.
답변
“>”를 사용하는 표준 출력 리디렉션에 유용한 라이너 1 개 :
@for /f %%i in ('type yourfile.txt') do @echo %%i & exit