Я использую команду net group "Groupname" /domain
которая выводит группу пользователей в группе в формате 3 столбцов. Между колоннами есть пробелы.
Как вывести команду, чтобы в каждой строке был один пользователь?
Я использую команду net group "Groupname" /domain
которая выводит группу пользователей в группе в формате 3 столбцов. Между колоннами есть пробелы.
Как вывести команду, чтобы в каждой строке был один пользователь?
Пожалуйста, попробуйте что-нибудь, прежде чем спрашивать в следующий раз.
Предполагая, что результат команды примерно:
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
или к вызову с указанным столбцом текущей строки.
Пожалуйста, используйте токены = 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