我正在构建一个查询 AD 的批处理文件,将结果通过管道传输到 .txt 文件中,然后使用 for /f 循环来解析和规范化 .txt 文件。我遇到了一些并发症,想让其他眼睛看看它。
另外,使用 VBS 来解析/规范化而不是笨拙的 /f 会更好吗?
批:
@echo off
echo **********************************************
echo * This batch file will query members of a DL *
echo **********************************************
echo.
set /p gn=Enter DL to get Members:
echo.
CHOICE /C:12 /M "Choose 1 for DOMAIN1 query, Choose 2 for DOMAIN2 query."
IF ERRORLEVEL 2 GOTO Label2
IF ERRORLEVEL 1 GOTO Label1
:Label1
dsquery group DC=DOMAIN1,DC=NET -name "%gn%" | dsget group -members -expand >> "%gn%"List.txt
set fn = "%gn%"List.txt"
GOTO End
:Label2
dsquery group DC=DOMAIN2,DC=NET -name "%gn%" | dsget group -members -expand >> "%gn%"List.txt
set fn = "%gn%"List.txt"
GOTO End
:End
for /f "delims=, tokens=1,2" %i in ('more %fn%') do @ echo %i
以下是创建的 .txt 文件中的一些示例行:
"CN=LastName1\, FirstName1,OU=OU1,OU=OUSUB1,DC=DOMAIN1,DC=net"
"CN=LongLastName1\, LongFirstName1,OU=OU1,OU=OUSUB1,DC=DOMAIN1,DC=net"
"CN=LastName2, FirstName2,OU=OU1,OU=OUSUB1,DC=DOMAIN1,DC=net"
在 for 循环中,我用逗号分隔。从我的示例行中,我打算将令牌 1 存储为“CN=LastName1\ 并将令牌 2 存储为 FirstName1 并从那里开始,但这就是我被卡住的地方。我的 for 循环出错了”“此时 fni 是意外的” . 这与从单引号中转义 %fn% 变量有关吗
('more %fn%')
谢谢。