AD を照会し、結果を .txt ファイルにパイプしてから、for /f ループを使用して .txt ファイルを解析および正規化するバッチ ファイルの作成に取り組んでいます。私はいくつかの合併症に遭遇しており、他の人に見てもらいたいと思っています.
また、扱いにくい/fの代わりに、VBSを使用して解析/正規化する方がよいでしょうか?
バッチ:
@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 として保存するつもりですが、ここから先に進みます。 .これは、 %fn% 変数を一重引用符からエスケープすることと関係がありますか?
('more %fn%')
ありがとう。