Как разделить разделенный текст в пакетном режиме Windows? - PullRequest
2 голосов
/ 31 января 2011

У меня есть командный файл с внешним файлом конфигурации.Скажем, мне нужно было удалить файлы, указанные в файле конфигурации в виде списка с разделителями в одну строку .Файлы могут выглядеть следующим образом:

[config.cfg]
*.pdb;*.config

[batch.bat]
...
for /f "tokens=* delims=;" %%b in (%DATA_10%) do (
CALL DEL "%%b%"
)
...

Код пакета должен перебирать список файлов и удалять их.

Если у меня есть другой внешний файл, назначенный переменной% DATA_10%, которая содержитсписок файлов для удаления по одному в строке, то он отлично работает.Однако мне нужно, чтобы файлы были извлечены из config.cfg, как вы видите выше (все в одной строке), в противном случае в моей партии было бы слишком много файлов конфигурации.

Есть идеи для решения?

1 Ответ

0 голосов
/ 31 января 2011

Если config.cfg содержит только одну строку с вашими данными, вы можете использовать

set /p DATA_10= < config.cfg

Но ваш цикл FOR / F расширяется только один раз на строку, поэтому он не может работать таким образом.Вы можете изменить его на

FOR %%a in (%DATA_10%) do (call del "%%b")

Но вы должны быть уверены, что не используете * или?, Потому что они интерпретируются как символы подстановки в "нормальном" цикле for

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...