2010-06-01 2 views
24

привет, я хочу, чтобы рекурсивно перечислил абсолютный путь ко всем файлам, которые заканчиваются mp3 из заданного каталога, который следует указывать как относительный каталог.windows .bat файл как рекурсивно перечислить все файлы типа * .mp3

Мне хотелось бы также удалить каталог из файла, и я прочитал, что переменные, которые находятся в области видимости, должны быть заключены в! S. это правильно?

мой текущий код выглядит следующим образом:

for /r %%x in (*.mp3) do ( 
    set di=%%x 
    echo directory !di! 
    C:\bla.exe %%x !di! 
) 

спасибо!

ответ

61

Как насчет команды DIR ...

dir /s/b *.mp3 

... вышеприведенная команда будет искать текущий путь и все это дети. Для того, чтобы получить больше информации о том, как использовать эту команду открыть окно командной строки и введите DIR /?

+0

спасибо! и теперь мне понадобится каждая строка в переменной – clamp

+1

Удачи вам в этой части. Проверьте команду 'FOR'. –

+0

@MatthewWhited Веб-сайты находятся в автономном режиме. Вы можете это исправить? – minimen

1

Вы можете добавить результаты в файл с '> [имя файла]

5

Этот пакетный файл показывает, как извлекать элементы имя файла из переменной в цикле for. Сохраните это как listfiles.bat, затем запустите «listfiles some \ folder * .mp3». Я установил поиск файла в качестве подпрограммы в пакетном файле, чтобы вы могли вставить его в свои собственные скрипты.

Вы также можете запустить «для /?» в командной строке cmd для получения дополнительной информации о команде.

@echo off 
setlocal enableextensions enabledelayedexpansion 
call :find-files %1 %2 
echo PATHS: %PATHS% 
echo NAMES: %NAMES% 
goto :eof 

:find-files 
    set PATHS= 
    set NAMES= 
    for /r "%~1" %%P in ("%~2") do (
     set PATHS=!PATHS! "%%~fP" 
     set NAMES=!NAMES! "%%~nP%%~xP" 
    ) 
goto :eof 
Смежные вопросы