我可以让它读取文本文件直到它变成逗号分隔的文本文件。
我想读取每一行上的两个变量,并使用 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"
)