
Consigo fazer com que ele leia o arquivo de texto até que ele se torne um arquivo de texto delimitado por vírgulas.
Gostaria de ler as duas variáveis em cada linha e testar cada uma delas com uma instrução If para outra condição. O problema é que não consigo ler as variáveis corretamente. Tentei muitas coisas, mas aqui está o que vou postar. Os tempos limite são para ver o que está acontecendo:
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
)
TestText.txt
"One","1"
"Two","2"
"Three","3"
"Four","4"
SAÍDA:
"One","1" is the present variabe
Responder1
O problema da sua condição é que você precisa escapar da vírgula ( ,
). No prompt de comando, isso é feito com um sinal de intercalação ( ^
).
Isso funciona:
for /f %%a in (TestText.txt) do (
if %%a=="One"^,"1" echo Match for "One","1"
)
No entanto, como você está usando CSV, você pode querer dividir cada linha por vírgulas. Isso é feito com a tokens=1-n delims=,
opção onde n
é o número de valores por linha.
Os valores separados serão armazenados em %%a
, %%b
, etc.:
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"
)