Bat: как извлечь имена файлов из команды - PullRequest
0 голосов
/ 30 июля 2010

Я пытаюсь создать скрипт со списком имен файлов, возвращаемых программой.

Программа называется ShowFiles.exe и принимает аргументы вроде этого:

"ShowFiles opened ..." 

поэтому аргумент 1 «открыт», а аргумент 2 «...»

Результат выглядит так:

c:\tmp\test1.txt#0 - add default 
c:\tmp\test2.TXT#1 - edit default 

То, что я хочу, это получить только имена файлов.

Как это:

test1.txt 

test2.txt 

Большое спасибо за любую помощь.

1 Ответ

3 голосов
/ 01 августа 2010

Вы можете использовать for /f для перебора выходных данных команды:

for /f %%F in ('ShowFiles ...') do ...

Это может принимать некоторые параметры, которые определяют, как будет выполняться токенизация.В вашем случае имя файла, по-видимому, останавливается на #, поэтому следующее значение должно делиться на # и принимать только первый токен:

for /f "tokens=1 delims=#" %%F in ('ShowFiles ...') do (
    echo File name: %%F
    echo File name without path: %%~nxF
)

Затем вы можете использовать имена файлов, как показано вышеза то, что вам нужно.Если вам просто нужно вывести их, тогда достаточно простого echo %%F или echo %%~nxF.Подробнее об этих вещах можно узнать в help for.

...