1
배치 스크립트를 사용하여 파일을 읽는 중입니다. 기본적으로 특정 라인을 읽고 다른 변수에 토큰을 설정하려고합니다. 문제는 라인에 고정 된 수의 토큰이 없다는 것입니다. 다음 파일 형식을 고려 :배치 파일 : 동적 토큰 수를 사용하여 변수 설정
Line 1 Domains www.google.com www.yahoo.com www.reddit.com ...
Line 2 541 5435 322 123
Line 3 273 123 432 123
내 스크립트가 그 세 번째 토큰 "도메인"에 해당하고 다른 변수에 따라 토큰을 저장하는 라인을 읽는 것입니다. 이 경우 Domain1=www.google.com
, Domain2=www.yahoo.com
, Domain3=www.reddit.com
등과 같이 설정합니다. 내 코드는 다음과 같이 표시됩니다
for /f "tokens=3*" %%A in (%file%) do (
if ("%%A"=="Domains") (
REM Delimit %%B with a space and store each token into different variables
)
)
편집 : 문제 해결. 그것은 부족 대표로 내 자신의 질문에 대답하는 나를 위해 너무 빨리,하지만 여기 제레미의 게시물에서 시작하는 내 솔루션 :이 문제 정확히 그것을 해결 당신이 원하는 방법하지만 해결되지 않는
set index=1
for /f "tokens=3*" %%A in (%file%) do (
if ("%%A"=="Domains") (
for %%C in (%%B) do (
set Domain!index!=%%C
set /A index+=1
)
)
)
이것은 결국 내가 얻은 해결책의 절반 이상이며 많은 도움이되었습니다. 기본적으로 중첩 for 루프를 만들었고 (즉, 첫 번째 루프에 두 번째 루프를 넣음) '% domains %'를 '%% B'로 바꿨습니다. – Dan