for /f "delims=" %%a in (filename.txt) do for %%b in (%%a) do if "%%~xb"==".xml" echo %%b
должен дать требуемый результат.
(прочитать каждую строку из файла, затем проверить каждый токен - если токен рассматривается как имя файла, а расширение - .xml
, то показать этот токен.
@ECHO OFF
SETLOCAL
SET "sourcedir=U:\sourcedir"
SET "filename1=%sourcedir%\q50701268.txt"
SET "files="
for /f "delims=" %%a in (%filename1%) do for %%b in (%%a) do if "%%~xb"==".xml" CALL SET "files=%%files%% %%b"
ECHO %files%
SET "files="
SET /a fcnt=0
for /f "delims=" %%a in (%filename1%) do for %%b in (%%a) do if "%%~xb"==".xml" SET /a fcnt+=1&CALL SET "files%%fcnt%%=%%b"
SET files
GOTO :EOF
Я использовал файл с именем q50701268.txt
в моей тестовой директории u:\sourcedir
, содержащий некоторые фиктивные данные для моего тестирования.
Два разных метода для multiples files
расширение.
Первая предоставляет единственную переменную, содержащую список имен, разделенных пробелами. Конечно, она может быть изменена на любой разделитель и, возможно, заключить в кавычки имена.
Вторая генерируетотдельные переменные, содержащие имена.