Eu não quero que o VariableValue entre na saída. Eu quero simplesmente obter xxx Isso é possível?
Usando um arquivo em lotes:
@echo off
setlocal
for /f "usebackq skip=1 tokens=*" %%i in ('wmic environment where ^(name^="PATH" and systemVariable^=FALSE^) get variableValue ^| findstr /r /v "^$"') do echo %%i
endlocal
Usando uma linha de comando:
for /f "usebackq skip=1 tokens=*" %i in ('wmic environment where ^(name^="PATH" and systemVariable^=FALSE^) get variableValue ^| findstr /r /v "^$"') do @echo %i
Notas:
-
for /f
faz um loop na saídawmic
. -
skip=1
ignora a linha de cabeçalho (contendoVariableValue
) -
findstr /r /v "^$"
remove a linha em branco final da saídawmic
.
Exemplo de saída:
C:\Users\DavidPostill\AppData\Roaming\npm
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.
- findstr - Pesquise strings em arquivos.
- para / f - Comando Loop contra os resultados de outro comando.
- wmic - Comando de instrumentação de gerenciamento do Windows.