Як вивести команду net group у форматі списку в пакеті


1

Я використовую net group "Groupname" /domain команда, яка виводить купу користувачів у групі у форматі 3 стовпців. Між стовпцями є пробіли.

Як вивести команду таким чином, щоб на кожну лінію знаходився один користувач?

Відповіді:


1

Будь ласка, спробуйте щось, перш ніж запитати наступного разу.

Припускаючи, що вихід команди грубо:

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

Як я не впевнений у виході цього файлу, звідки я пишу це, я не знаю, якщо префікс на виході дається, що необхідно пропустити.

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

Тепер я вважаю за краще використовувати файли за звичкою резервних копій і незвичайної обробки символів, тому я б використовував це, хоча це 3 рядки і записує у файл;

:: 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"

Звичайно >>output.ext може застосовуватися індивідуально %%~G %%~H %%~Iабо виклик з вказаним стовпцем поточного рядка.


При цьому виводиться лише перший стовпець, а не другий і третій.
Ice

Виправлено, не знаю, як я пропустив це.
Bloodied

0

Використовуйте опцію маркери = 1,2,3

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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.