我正在尝试使用批处理脚本从字符串列表中提取标记,但出于某种原因,如果字符串包含星号,它将忽略我的字符串。
下面是一个例子来说明这个问题:
@echo off set mylist="test1a,test1b" set mylist="test2a,test2b*" %mylist% set mylist="test3a,test3b" %mylist% echo %mylist% for %%a in ( %mylist% ) do ( for /F "tokens=1,2 delims=," %%i in ( %%a ) do ( echo %%i echo %%j ) )
我希望它能打印出所有六个令牌,但它只打印test3a、test3b、test1a和test1b,就像它完全忽略了第二个字符串一样。
星号在第二个字符串中的位置似乎并不重要,但是如果我删除它,一切都会按我的预期工作。
有人知道这是怎么回事吗?
知道了。解释器正在尝试匹配文件名。如果您将“test2a,test2b*”更改为pp.*并创建一个名为pp.txt(相同目录)的文件,您的脚本将处理pp.txt的内容。