如何在批处理脚本中循环CSVDE

时间:2017-10-27 16:17:31

标签: batch-file 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的=用户)(objectCategory =人))'

当我在这个脚本之外运行CSVDE时(即在循环之外),它运行得很好。所以,它必须与它在一个循环中的事实有关。但是,我无法弄清楚为什么以及如何解决它。我需要更改什么才能解决此问题?

0 个答案:

没有答案