1

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

Как вывести команду, чтобы в каждой строке был один пользователь?

2 ответа2

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 или к вызову с указанным столбцом текущей строки.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .