Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 从csv创建用户的批处理脚本_Batch File - Fatal编程技术网

Batch file 从csv创建用户的批处理脚本

Batch file 从csv创建用户的批处理脚本,batch-file,Batch File,我无法创建用户,我想将他们名字的第一个字母和整个姓氏作为用户ID。(我的剧本是法语的) 这是: echo off chcp 28591 setlocal enabledelayedexpansion rem je fait la creation de l'ou for /f "skip=1 tokens=4,5 delims=;" %%A IN (listes_apprenants.csv) DO ( set organisation= %%A set service= %%B dsad

我无法创建用户,我想将他们名字的第一个字母和整个姓氏作为用户ID。(我的剧本是法语的)

这是:

echo off chcp 28591 setlocal enabledelayedexpansion rem je fait la creation de l'ou

for /f "skip=1 tokens=4,5 delims=;" %%A IN (listes_apprenants.csv) DO (

set organisation= %%A set service= %%B

dsadd ou "ou=!organisation!,dc=pme,dc=lan" dsadd ou "ou=!service!,ou=!organisation!,dc=pme,dc=lan" dsadd group "cn=gg_!service!,ou=!service!,ou=!organisation!,dc=pme,dc=lan" dsadd ou "ou=utilisateur,ou=!service!,ou=!organisation!,dc=pme,dc=lan" )

for /f "skip=1 tokens=1,2,3,4,5,6,7,8* delims=;" %%A IN (listes_apprenants.csv) DO (

set prénom= %%A set nom= %%B set site= %%C set organisation= %%D set service= %%E set adresse= %%F set téléphone= %%G set bureau= %%H

dsadd user "cn=!prénom:~0,1!!nom:~0,19!,ou=utilisateur,ou=!service!,ou=!organisation!,dc=pme,dc=lan" -disabled no -pwd Pilote01 -fn !prénom! -ln !nom! -memberof "gg_!service!,ou=!service!,ou=!organisation!,dc=pme,dc=lan" -dept !site! -tel !téléphone! -office !bureau! -mustchpwd yes )
[第三方编辑]


我在编辑中发现了一些打字错误,还有一些多余的代码,所以我在这里重新编写

无需更改prenom以外的任何内容,因为所有其他项目都可以直接使用

另外,它分配变量的方式是添加空格,这可能会导致您可能不想要的结果,而且我们不知道您是否有双引号
围绕CSV中的值,我们不希望在rhe
DN
字符串中包含这些值,这些字符串作为一个整体被双引号引用,这是我们在用户字段的字符串中可能需要的。所以我提供它们

CN的“NOM”部分通常是整个姓氏,没有理由将其限制为20个字符

SAMID中有20个字符的限制,但由于未指定SAMID,如果未指定,将自动生成前20个字符。:)

(这是在GUI中键入长用户名时常见的行为)


基本上我想知道维吉尔·拉罗什的名字和命令“cn=!firstname:~0,1!!name:~0,19!”是否会给弗拉罗什带来什么?你发布了一些无效的代码,我已经通过编辑的方式修复了这些代码,并告诉我们你不能做什么,但没有提出具体的问题。请(不包括在评论区),在批处理文件中包含您希望我们帮助您解决的具体问题的完整和适当解释。您是否确实需要代码页28591(
ISO 8859-1 Latin 1;西欧(ISO)
),而不是代码页850,(
OEM多语言拉丁语1;西欧(DOS)
)或更可能的代码页1252,(
ANSI拉丁语1;西欧(Windows)
)。我发现我的错误应该是!prénom:~1,1!!nom:~1,19!您也不需要设置所有这些变量,只需设置“prénom=%%A”。例如
dsadd user“cn=!prénom:~,1!%%B,ou=usilizateur,ou=%%E,ou=%%D,dc=pme,dc=lan”-禁用的无pwd Pilote01-fn%%A-ln%%B-成员“gg_uue,ou=%%E,ou=%%D,dc=pme,dc=lan”“-dept%%C-tel%%G-office%%H-mustchpwd yes
,应该是必需的。您也可以使用
tokens=1-8
,而不是
tokens=1,2,3,4,5,6,7,8*
。谢谢您的帮助!我是新手,不知道我可以这么做。”
echo off
chcp 28591
setlocal enabledelayedexpansion
rem je fait la creation de l'ou
for /f "skip=1 tokens=4,5 delims=;" %%A IN (listes_apprenants.csv) DO (
    set organisation= %%A
    set service= %%B
    dsadd ou "ou=!organisation!,dc=pme,dc=lan"
    dsadd ou "ou=!service!,ou=!organisation!,dc=pme,dc=lan"
    dsadd group "cn=gg_!service!,ou=!service!,ou=!organisation!,dc=pme,dc=lan"
    dsadd ou "ou=utilisateur,ou=!service!,ou=!organisation!,dc=pme,dc=lan"
)
for /f "skip=1 tokens=1,2,3,4,5,6,7,8* delims=;" %%A IN (listes_apprenants.csv) DO (
    set prénom= %%A
    set nom= %%B
    set site= %%C
    set organisation= %%D
    set service= %%E
    set adresse= %%F
    set téléphone= %%G
    set bureau= %%H
    dsadd user "cn=!prénom:~0,1!!nom:~0,19!,ou=utilisateur,ou=!service!,ou=!organisation!,dc=pme,dc=lan" -disabled no -pwd Pilote01 -fn !prénom! -ln !nom! -memberof "gg_!service!,ou=!service!,ou=!organisation!,dc=pme,dc=lan" -dept !site! -tel !téléphone! -office !bureau! -mustchpwd yes
)
@(setlocal enabledelayedexpansion
  echo off
  chcp 28591
  rem je fait la creation de l'ou
  SET "_Filte=C:\Pah\To\listes_apprenants.csv"
  SET "_Base_DN=dc=pme,dc=lan"
)

CALL :Main

( Endlocal
  Exit /B
)

:Main

  for /f "skip=1 tokens=1-8 delims=;" %%A IN ('
    Type "%_File%"
  ') DO (
    dsadd ou "ou=%%~D,%_BaseDN%"
    dsadd ou "ou=%%~E,ou=%%~D,%_BaseDN%"
    dsadd group "cn=gg_%%~E,ou=%%~E,ou=%%~D,%_BaseDN%"
    dsadd ou "ou=utilisateur,ou=%%~E,ou=%%~D,%_BaseDN%"
    set "prénom=%%~A"
    dsadd user "cn=!prénom:~0,1!%%~B,ou=utilisateur,ou=%%~E,ou=%%~D,%_BaseDN%" -disabled no -pwd Pilote01 -fn "!prénom!" -ln "%%~B" -office "%%~H" -mustchpwd yes -memberof "cn=gg_%%~E,ou=%%~E,ou=%%~D,%_BaseDN%" -dept "%%~C" -tel "%%~G"
)
GOTO :EOF