如何在批处理文件中获取嵌套循环以运行Net命令



hi

我正在尝试在下面运行以获取用户,并且已分配了全局组
@echo off
setlocal enabledelayedexpansion
for /f "tokens=1,2,3 delims=,"  %%a in ('net localgroup TectiaUsers^|findstr /b "EUR"') do (
set FID=%%~a
echo !FID!
PAUSE
set FID=!FID:EUR=!
echo !FID!
PAUSE
for /f "useback tokens=1,2,3 delims=," %%b in ('net user !FID! /domain^|findstr /b "Global Group memberships"') do (
    echo !FID!,%%~b
    PAUSE
)
)

现在上面的代码没有给出预期的输出,我已经检查并发现当代码 for/f"用用tokens = 1,2,3 delims =," %% b in('NET用户! echo!fid!,%% 〜b) 它返回输出,因为它是

 Press any key to continue . . .
 User1,net user User1 /domain|findstr /b "Global Group memberships"
 Press any key to continue . . .

相反,我期望输出如下

Global Group memberships     *Domain Users

查看您的脚本有两个明显的问题:

  1. 您的令牌和分界符似乎是错误的
  2. 您的第二个FindStr搜索掩码不正确。

我无法在此处复制您的输出,因此以下示例脚本代码纯粹基于我的最佳猜测。

@Echo Off
For /F "Tokens=1*Delims=" %%A In (
    'Net LocalGroup "TectiaUsers"^|FindStr/LIB "EUR"'
) Do For /F "Tokens=3*" %%C In (
    'Net User "%%B" /Domain^|FindStr/LIB "Global Group memberships"'
) Do Echo %%B,%%D
Pause

最新更新