Проблема с анализом списка в пакете - PullRequest
2 голосов
/ 02 июня 2010

Я пытаюсь извлечь токены из списка строк, используя пакетный скрипт, но по какой-то причине он игнорирует мою строку, если он содержит звездочку.

Пример, иллюстрирующий эту проблему:

@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 Ответ

1 голос
/ 02 июня 2010

Понял. Интерпретатор пытается сопоставить имя файла. Если вы измените «test2a, test2b *» на pp. * И создадите файл с именем pp.txt (same dir), ваш скрипт обработает содержимое pp.txt

...