Пакетный файл - запись списка файлов в переменную - PullRequest
8 голосов
/ 13 июля 2010

Я хотел бы получить список всех файлов (включая их абсолютный путь) в переменную, разделенную пробелами. Мой Google-фу кажется слабым в этом отношении, потому что я продолжаю сталкиваться с проблемами.

У меня есть базовый каталог, хранящийся в% baseDir%, и я хотел бы проанализировать его для файлов (не рекурсивных или включая подкаталоги). Как я уже говорил, это должно войти в список. Я мог бы предположить, что есть хороший маленький ярлык, который я мог бы использовать, но цикл for и конкатенация также помогли бы.

В идеале у меня было бы что-то вроде этого:

echo fileList

C:\file1.c C:\file2.c C:\file3.c

1 Ответ

14 голосов
/ 13 июля 2010

Довольно просто:

setlocal enabledelayedexpansion enableextensions
set LIST=
for %%x in (%baseDir%\*) do set LIST=!LIST! %%x
set LIST=%LIST:~1%

На самом деле этот самый пример вы также найдете в справке по команде set, доступной через help set, с объяснением, почему победил наивный подход 't работа.

Чтобы использовать другой набор файлов (вместо все ), вы можете легко изменить шаблон:

for %%x in (%baseDir%\*.c) do set LIST=!LIST! %%x
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...