これは、バッチ スクリプト ファイルでユーザーを作成してグループに追加するための私のコードです。
ご覧のとおり、TZ から変数をハードコードする必要があります。行を読み取り、最初の区切り文字を変数に取り込み、それを使用してから、その変数を次の区切り文字に再利用する方法はありますか? このコードを 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
)
)