O que deve ser feito para mostrar aos outros?
Você precisa executar o echo dentro do for loop e dentro do if test, caso contrário, você estará apenas echo da última correspondência.
Além disso:
- Eu não usaria
pathcomo variável (PATHé uma variável de ambiente já definida). - Nomeie suas variáveis
_somename(o_principal impede confrontos de nomes com variáveis de ambiente existentes). - É uma boa ideia usar
setlocalpara impedir que suas variáveis vazem para o prompt de comando pai. - Você precisa usar
set setlocal enabledelayedexpansionpara que o valor atualizado sejaechoed a cada vez em torno do loop.
Experimente o seguinte arquivo em lote:
@echo off
setlocal
setlocal enabledelayedexpansion
@echo off
for /d /r "c:\" %%i in (temp) do (
@if exist "%%i" (
@set _variable=%%i
@echo !_variable!
)
)
endlocal
Leitura Adicional
- Um índice A-Z da linha de comando do Windows CMD - Uma excelente referência para todas as coisas relacionadas à linha do Windows cmd.
- setlocal - Defina opções para controlar a visibilidade de variáveis de ambiente em um arquivo em lotes.