Como você itera sobre cada arquivo em um diretório com um arquivo .bat ou .cmd?
Para simplificar, forneça uma resposta que apenas ecoe o nome do arquivo ou o caminho do arquivo.
Como você itera sobre cada arquivo em um diretório com um arquivo .bat ou .cmd?
Para simplificar, forneça uma resposta que apenas ecoe o nome do arquivo ou o caminho do arquivo.
Respostas:
Uso da linha de comando:
for /f %f in ('dir /b c:\') do echo %f
Uso de arquivo em lote:
for /f %%f in ('dir /b c:\') do echo %%f
Atualização : se o diretório contiver arquivos com espaço nos nomes, você precisará alterar o delimitador que o for /fcomando está usando. por exemplo, você pode usar o caractere de pipe.
for /f "delims=|" %%f in ('dir /b c:\') do echo %%f
Atualização 2 : (rápida um ano e meio após a resposta original :-)) Se o próprio nome do diretório tiver um espaço no nome, você poderá usar a usebackqopção no for:
for /f "usebackq delims=|" %%f in (`dir /b "c:\program files"`) do echo %%f
E se você precisar usar o redirecionamento de saída ou a tubulação de comando, use o escape char ( ^):
for /f "usebackq delims=|" %%f in (`dir /b "c:\program files" ^| findstr /i microsoft`) do echo %%f
/fnecessário após o for? De acordo com os documentos da ajuda, o /fsinalizador é aberto e lê cada arquivo. Isso é necessário para ecoar ou renomear arquivos?
/fdepois FORrestringe a arquivos. Da mesma forma, /drestringe-se a diretórios (pastas) e /rinstrui-o a ser recursivo.
'dir /b "c:\program files"'que deveria ser`dir /b "c:\program files"`
Como alternativa, use:
forfiles /s /m *.png /c "cmd /c echo @path"
O comando forfiles está disponível no Windows Vista e superior.
Método mais fácil:
Na linha de comando, use:
for %f in (*.*) do echo %f
Em um arquivo em lotes (dobre os sinais de porcentagem%):
for %%f in (*.*) do echo %%f
Em um arquivo em lotes com pasta especificada como 1º parâmetro:
for %%f in (%1\*.*) do echo %%f
dir /Bsaída for.
Usar
for /r path %%var in (*.*) do some_command %%var
com:
%%var was unexpected at this time.Você pode dar um exemplo exato? Eu tentei um monte de variações defor /r . %%var in (*.*) do echo %%var
Outra maneira:
for %f in (*.mp4) do call ffmpeg -i "%~f" -vcodec copy -acodec copy "%~nf.avi"
"%~nf"significa o nome do arquivo sem extensão, onde fé o nome da variável especificada em forparte. Documentos: docs.microsoft.com/pt-br/previous-versions/windows/it-pro/…