
쉼표로 구분된 텍스트 파일이 될 때까지 텍스트 파일을 읽도록 할 수 있습니다.
각 줄의 두 변수를 읽고 다른 조건에 대한 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"
)