代码之家  ›  专栏  ›  技术社区  ›  WildCrustacean

批量分析列表时出现问题

  •  2
  • WildCrustacean  · 技术社区  · 14 年前

    我正在尝试使用批处理脚本从字符串列表中提取标记,但出于某种原因,如果字符串包含星号,它将忽略我的字符串。

    下面是一个例子来说明这个问题:

    @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,就像它完全忽略了第二个字符串一样。

    星号在第二个字符串中的位置似乎并不重要,但是如果我删除它,一切都会按我的预期工作。

    有人知道这是怎么回事吗?

    1 回复  |  直到 14 年前
        1
  •  1
  •   Dr. belisarius    14 年前

    知道了。解释器正在尝试匹配文件名。如果您将“test2a,test2b*”更改为pp.*并创建一个名为pp.txt(相同目录)的文件,您的脚本将处理pp.txt的内容。