Obtém a saída de um comando CMD e configura-a como uma variável em lote

4

Eu corro este comando para obter o nome dos grupos:

set "remotegroup="
     for /f "skip=1delims=" %%a in (
     '"wmic group where sid="S-1-5-32-555" get name"'
     ) do if not defined remotegroup set "remotegroup=%%a"

mas quando eu faço isso echo "%rdpgroup%" , a saída é assim:

"Remote Desktop Users  "

Eu não quero esses espaços no final dos usuários. Só quero uma saída como esta: "Remote Desktop Users"

    
por Aria Fathi 26.02.2018 / 19:20

1 resposta

5

A saída do WMIC é unicode!

O <CR> pode ser removido passando o valor por outro loop FOR / F. Isso também remove a linha fantasma "em branco" (na verdade, um <CR> )

@echo off
set "remotegroup="
for /f "skip=1 delims=" %%a in ('"wmic group where sid="S-1-5-32-555" get name"') do (
    for /f "delims=" %%b in ("%%a") do if not defined remotegroup set "remotegroup=%%~nb"
)
echo "%remotegroup%"
pause
    
por 26.02.2018 / 21:11