텍스트 파일을 가지고 있는데 전체 텍스트 파일을 읽는 배치 파일을 실행하고 문자열 "PASS"의 발생 횟수를 알려줍니다.배치 파일에서 텍스트 파일에서 문자열의 발생을 찾는 방법은 무엇입니까?
어떻게 할 수 있습니까? - BAT 파일에서 토큰 사용법을 이해할 수 없습니다.
텍스트 파일을 가지고 있는데 전체 텍스트 파일을 읽는 배치 파일을 실행하고 문자열 "PASS"의 발생 횟수를 알려줍니다.배치 파일에서 텍스트 파일에서 문자열의 발생을 찾는 방법은 무엇입니까?
어떻게 할 수 있습니까? - BAT 파일에서 토큰 사용법을 이해할 수 없습니다.
아마도 findstr
명령은 도움이 될 것입니다 : Findstr Help. 숫자를 인쇄하지는 않지만 결과로 무엇인가 할 수 있습니다.
업데이트 : Find command에는 /c
옵션이 있습니다.이 옵션은 해당 문자열을 포함하는 행 수를 계산합니다.
멀 모스의 답이 좋으며 일반적으로 문제를 해결해야합니다.
하지만 토큰을 이해할 수 없으므로 설명해 보겠습니다.
FOR/F
명령을 사용하여 파일의 내용을 읽을 수 있습니다.
FOR/F
은 파일을 한 줄씩 읽습니다. 각 빈 줄은 건너 뛰고 EOL- 문자 (기본값은 ;
)로 시작하는 모든 줄도 건너 뜁니다.
기본값 인 tokens=1 delims=<TAB><SPACE> EOL=;
을 사용합니다.
이 경우 줄 끝까지 또는 첫 번째 SPACE
또는 TAB
까지 항상 하나의 토큰이 있습니다.
for /F "tokens=1" %%a in (myFile.txt) do (
echo token1=%%a
)
토큰을 더 읽으려면 정의해야합니다. 다음 토큰이 비어있는 라인에 덜 delims이있는 경우
for /F "tokens=1,2,3,4" %%a in (myFile.txt) do (
echo token1=%%a token2=%%b token3=%%c token4=%%d
)
이제 선은 구분 기호 (SPACE 또는 TAB)에서 네 개의 토큰으로 분할합니다.
토큰이 여러 개 없거나 특정 토큰 뒤에 나머지 행이있는 경우 *
을 사용할 수 있습니다.
tokens = 1,2,3,4 * "%% a in (myFile.txt) do ( ) echo token1 = %% a 토큰 2 = %% b 토큰 3 = %% c 토큰 4 = %% d )
이제 token4에서 네 번째 토큰 및 나머지 줄이됩니다. 하나의 토큰이 존재하는이 경우 (%%a
) 다른 사람 (%%b
%%c
%%d
)에서
for /F "tokens=1*" %%a in (myFile.txt) do (
echo token1=%%a token2=%%b token3=%%c token4=%%d
)
는 유효한 토큰이 아닌 텍스트
token2=%b token3=%c token4=%d
가 반향됩니다.
delim을 사용하여 모두를 하나의 토큰으로 축소 할 수도 있습니다. /F에 대한 "delims ="%% A의 (MYFILE.TXT) 할 ( 은 = 전체 라인을 에코 %% )이, 작동
등이 할 수있는 단 하나의 토큰, 모든 문자가 아니므로 선을 더 많은 토큰으로 분할합니다.