Windows 배치 파일에서 쉼표로 구분된 텍스트 파일을 어떻게 읽을 수 있습니까?

Windows 배치 파일에서 쉼표로 구분된 텍스트 파일을 어떻게 읽을 수 있습니까?

쉼표로 구분된 텍스트 파일이 될 때까지 텍스트 파일을 읽도록 할 수 있습니다.

각 줄의 두 변수를 읽고 다른 조건에 대한 If 문을 사용하여 각 변수를 테스트하고 싶습니다. 문제는 변수를 제대로 읽을 수 없다는 것입니다. 많은 것을 시도했지만 여기에 게시하겠습니다. 시간 초과는 무슨 일이 일어나고 있는지 확인하는 것입니다.

for /f "tokens=*" %%a in (TestText.txt) do (
timeout /t 1
echo %%a is the present variabe
timeout /t 2
if %%a=="One","1" echo Match for "One","1"
timeout /t 3
if %%a=="One""1" echo Match for "One","1"
timeout /t 4
if %%a=="One" echo Match for "One"
timeout /t 5
if %%a=="1" echo Match for "1"
timeout /t 6
)

테스트텍스트.txt

"One","1"
"Two","2"
"Three","3"
"Four","4"

산출:

"One","1" is the present variabe

답변1

귀하의 상태에 대한 문제는 쉼표( )를 피해야 한다는 것입니다 ,. 명령 프롬프트에서는 캐럿( ^)을 사용하여 이 작업을 수행합니다.

이것은 작동합니다:

for /f %%a in (TestText.txt) do (
    if %%a=="One"^,"1" echo Match for "One","1"
)

그러나 CSV를 사용하고 있으므로 각 줄을 쉼표로 구분하는 것이 좋습니다. 이는 행당 값의 수를 나타내는 tokens=1-n delims=,옵션을 사용하여 수행됩니다 .n

%%a별도의 값은 , 등에 저장됩니다 %%b.

for /f "tokens=1-2 delims=," %%a in (TestText.txt) do (
    if %%a=="One" echo Match for "One"
    if %%b=="1"   echo Match for "1"
)

추가 정보

관련 정보