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
path
como 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
setlocal
para impedir que suas variáveis vazem para o prompt de comando pai. - Você precisa usar
set setlocal enabledelayedexpansion
para que o valor atualizado sejaecho
ed 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.