Найти полное слово с подстрокой из текстового файла в пакетном файле Windows - PullRequest
0 голосов
/ 05 июня 2018

Я ищу решение, которое даст мне только полное слово в качестве вывода и , а не всю строку .

Например

FileName.txt содержит в одной строке

ProductABC_Test.txt Productdef_Test.txt test.xml Productghi_Test.txt

anbcf

, и мне нужно найти файл my.txt, если он содержит .xml и если да

тогда пакет должен дать мне полное имя т.е. text.xml

Если содержимое моего файла равно

  • ProductABC_Test.txt test1.xml Productdef_Test.txt test2.xml Productghi_Test.txt

Как я могу получить их в 2 различных переменных

спасибо заранее

1 Ответ

0 голосов
/ 05 июня 2018
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расширение.

Первая предоставляет единственную переменную, содержащую список имен, разделенных пробелами. Конечно, она может быть изменена на любой разделитель и, возможно, заключить в кавычки имена.

Вторая генерируетотдельные переменные, содержащие имена.

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