这是我的代码,用于在批处理脚本文件中创建用户并将用户添加到组中。
如您所见,我必须对TZ的各种变种进行硬编码。有什么方法可以读取该行,将第一个delimters捕获到一个变量中,然后使用它,然后将该变量重用于下一个delimter。我只想将此代码缩减为for内的2个dsadd组命令,但得到相同的结果。
%% D只是沿着“ Group1#Group2#Group3#Group4”行,可以容纳未知数量的组。
FOR /F "tokens=1-7 delims=#" %%T IN ("%%D") DO (
IF NOT [%%T] == [] (
dsadd group cn="%%T",ou="GroupsOU",dc=advserver,dc=local
dsmod group cn="%%T",ou="GroupsOU",dc=advserver,dc=local -addmbr cn="%%A %%B",ou="%%C",dc=advserver,dc=local
)
IF NOT [%%U] == [] (
dsadd group cn="%%U",ou="GroupsOU",dc=advserver,dc=local
dsmod group cn="%%U",ou="GroupsOU",dc=advserver,dc=local -addmbr cn="%%A %%B",ou="%%C",dc=advserver,dc=local
)
IF NOT [%%V] == [] (
dsadd group cn="%%V",ou="GroupsOU",dc=advserver,dc=local
dsmod group cn="%%V",ou="GroupsOU",dc=advserver,dc=local -addmbr cn="%%A %%B",ou="%%C",dc=advserver,dc=local
)
IF NOT [%%W] == [] (
dsadd group cn="%%W",ou="GroupsOU",dc=advserver,dc=local
dsmod group cn="%%W",ou="GroupsOU",dc=advserver,dc=local -addmbr cn="%%A %%B",ou="%%C",dc=advserver,dc=local
)
IF NOT [%%X] == [] (
dsadd group cn="%%X",ou="GroupsOU",dc=advserver,dc=local
dsmod group cn="%%X",ou="GroupsOU",dc=advserver,dc=local -addmbr cn="%%A %%B",ou="%%C",dc=advserver,dc=local
)
IF NOT [%%Y] == [] (
dsadd group cn="%%Y",ou="GroupsOU",dc=advserver,dc=local
dsmod group cn="%%Y",ou="GroupsOU",dc=advserver,dc=local -addmbr cn="%%A %%B",ou="%%C",dc=advserver,dc=local
)
IF NOT [%%Z] == [] (
dsadd group cn="%%Z",ou="GroupsOU",dc=advserver,dc=local
dsmod group cn="%%Z",ou="GroupsOU",dc=advserver,dc=local -addmbr cn="%%A %%B",ou="%%C",dc=advserver,dc=local
)
)
FOR /F "tokens=1-7 delims=#" %%T IN ("%%D") DO (
FOR %%S IN (%%T %%U %%V %%W %%X %%Y %%Z) DO (
dsadd group cn="%%S",ou="GroupsOU",dc=advserver,dc=local
dsmod group cn="%%S",ou="GroupsOU",dc=advserver,dc=local -addmbr cn="%%A %%B",ou="%%C",dc=advserver,dc=local
)
)
如果%%D
包含通过#
以下方式分隔的单词列表:“ Group1#Group2#Group3#Group4”,则使用此代码可以获得等效的结果:
set groups=%%D
FOR %%T IN ("!groups:#=" "!") DO (
dsadd group cn=%%T,ou="GroupsOU",dc=advserver,dc=local
dsmod group cn=%%T,ou="GroupsOU",dc=advserver,dc=local -addmbr cn="%%A %%B",ou="%%C",dc=advserver,dc=local
)
不论代码中的组数是多少,先前的代码都可以正常工作 %%D
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句