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 /f
comando 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 usebackq
opçã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
/f
necessário após o for
? De acordo com os documentos da ajuda, o /f
sinalizador é aberto e lê cada arquivo. Isso é necessário para ecoar ou renomear arquivos?
/f
depois FOR
restringe a arquivos. Da mesma forma, /d
restringe-se a diretórios (pastas) e /r
instrui-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 /B
saí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 for
parte. Documentos: docs.microsoft.com/pt-br/previous-versions/windows/it-pro/…