ola eu quero recursivamente listar o caminho absoluto para todos os arquivos que terminam com mp3 de um determinado diretório que deve ser dado como diretório relativo.
Eu gostaria de retirar também o diretório do arquivo e eu li que as variáveis que estão em um escopo devem ser colocadas em! s. isso esta certo?
meu código atual se parece com isso:
for /r %%x in (*.mp3) do (
set di=%%x
echo directory !di!
C:bla.exe %%x !di!
)
obrigado!
Respostas:
65 para resposta № 1Como sobre o comando DIR
...
dir /s/b *.mp3
... o comando acima pesquisará o caminho atual e todos esses filhos. Para obter mais informações sobre como usar este comando, abra uma janela de comando e digite DIR /?
5 para resposta № 2
Este arquivo em lote demonstra como extrairelementos de um nome de arquivo da variável em um loop for. Salve isso como listfiles.bat e execute "listfiles somefolder * .mp3". Eu configurei o arquivo como uma sub-rotina no arquivo de lote para que você possa inseri-lo em seus próprios scripts.
Você também pode executar "for /?" em um shell cmd para mais informações sobre o comando for.
@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
1 para resposta № 3
Você pode adicionar os resultados a um arquivo com "> [nome do arquivo]"