Как зациклить CSVDE в пакетном скрипте
Я использую CSVDE для экспорта некоторой пользовательской информации из AD. Мне нужно перебрать несколько контроллеров домена и экспортировать данные из каждого в отдельный CSV-файл. Для этого я использую следующий пакетный скрипт (для простоты отображается только 1 контроллер домена / файл):
ECHO %time%
@ECHO OFF
SET userName=SomeLogin
SET pass=SomePassword
SET domain=SomeDomain
SET columnName=-l givenname,lastLogon,userAccountControl,lastLogonTimestamp,sn,userPrincipalName,displayname,mail,samaccountname,pwdLastSet,whenCreated,whenChanged SET filter="(&(objectClass=User)(objectCategory=Person))"
SET len=1
SET data[0].file=some_file.csv
SET data[0].DC=someIP
SET i=0
:LOOP
IF %i% equ %len% GOTO :EOF
SET cur.file=
SET cur.DC=
FOR /f "usebackq delims==. tokens=1" %%j IN (`SET data[%i%]`) DO (
SET cur.%%k=%%l
)
csvde -f %cur.file% -r %filter% %columnName% -s %cur.DC% -b %userName% %domain% %pass% -u
SET /a i = %i% + 1
@ECHO ON
ECHO %time%
Когда я запускаю этот скрипт, я получаю следующую ошибку:
Неверный параметр: неверный аргумент '(&(objectClass=User)(objectCategory=Person))'
Когда я запускаю CSVDE вне этого скрипта (т.е. вне цикла), он работает просто отлично. Таким образом, это должно быть как-то связано с тем, что это в цикле. Но я не могу понять, почему и как это решить. Что мне нужно изменить, чтобы решить эту проблему?