Пакетные файлы: получить значение из строки - PullRequest
2 голосов
/ 04 марта 2009

Я получаю файл, который содержит следующее:

\direcotry1\directory2\directory3\file1
\direcotry1\file2
\direcotry1\directory2\directory3\directory4\file3
\direcotry1\file4
\direcotry1\directory2\file5
file6

Количество файлов в файле и количество каталогов являются переменными.

Мне нужно имя файла (файл1, файл2, файл3, файл4, файл5, ...). Это потому, что мне нужно выполнить некоторые действия для каждого файла.

Заранее большое спасибо за помощь.

Ответы [ 2 ]

4 голосов
/ 04 марта 2009

Используйте это. Просто замените эхо внутри цикла, чтобы сделать все, что вам нужно, для file1, file2 и т. Д.

@echo off
setlocal enableextensions enabledelayedexpansion
for /f %%i in (infile.txt) do (
    set x=%%~ni
    echo !x!
)
endlocal
0 голосов
/ 04 марта 2009

Вы ищете эту команду?

dir /r /b /A:-D

EDIT

Извините, я не правильно понял. Вы можете использовать эту команду dir для непосредственного сбора имен файлов аналогично тому, как вы просили.

Вы не можете использовать слишком много функций обработки строк в пакетных файлах, но то, что вы хотите, возможно:

@echo off
for /f %%I in (inputfile.txt) DO ECHO %%~nxI

Это будет печатать имена файлов без пути из inputfile.txt.

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