Como enviar o comando net group em formato de lista em lote

1

Estou usando o comando net group "Groupname" /domain , que gera um grupo de usuários no grupo no formato de 3 colunas. Existem espaços entre as colunas.

Como faço a saída do comando para que haja um usuário por linha?

    
por Ice 28.03.2016 / 13:07

2 respostas

1

Por favor, tente algo antes de perguntar da próxima vez.

Supondo que a saída do comando seja aproximadamente:

bossMan    Arescet    Ice
superuser  lazyWorker Dog 
(etc...)

Como não tenho certeza da saída deste arquivo de onde estou escrevendo, não sei se um prefixo para a saída é fornecido e precisa ser ignorado.

:: First attempt with a single line;
for /f %%G in ('net group "Groupname" /domain') do (echo %%G)

Agora eu prefiro usar arquivos por hábito de backups e manuseio de caracteres estranhos, então eu usaria isso, embora seja 3 linhas e escreve em um arquivo;

:: Write the output of your command into a file:
net group "Groupname" /domain >userList.temp

:: Split the content by spaces, and write each space separated token.
:: Column 1 is %%~G, 2 is %%~H, 3 is %%~I. 
for /f %%G in (userList.tmp) do (
    echo %%~G
    echo %%~H
    echo %%~I
)

:: Cleanup the temp file;
del "userList.temp"

É claro que >>output.ext pode ser aplicado individualmente a %%~G %%~H %%~I ou uma chamada com essa coluna especificada da linha atual.

    
por 28.03.2016 / 20:09
0

Por favor use tokens = 1,2,3 opção

echo off
:: Write the output of your command into a file:
net group "Groupname" /domain >userList.temp

:: Split the content by spaces, and write each space separated token.
:: Column 1 is %%~G, 2 is %%~H, 3 is %%~I. 
for /f "skip=8 tokens=1,2,3" %%G in (userList.temp) do (
    echo %%G
    echo %%H
    echo %%I
)

:: Cleanup the temp file;
del "userList.temp"
pause
echo on
    
por 12.07.2018 / 18:18