for /F "tokens=1 delims=" %%i in ('query user %userID% /server:ServerName') do set ans=%%i
Если пользователь запроса выводит строки до той, которая содержит данные, которые вы хотите, вам нужно добавить, skip=n
где n - количество строк вывода перед той, которая вас интересует. Указание соответствующих разделителей для этого "delims="
позволит вам проанализировать его.
Разве PowerShell не будет лучше?
Если выходные данные содержат более одной значимой строки выходных данных, вышеприведенное даст вам результаты только из последней строки. Добавление отложенной подстановки переменных и составных команд после «do» путем включения их в () может позволить вам справиться с этим.
Или вы можете перенаправить вывод в файл запроса пользователя% UserID% / user: ServerN> ServerN.txt, а затем проанализировать его с помощью for / f ...