首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >脚本练习

脚本练习
EN

Stack Overflow用户
提问于 2012-11-24 18:49:27
回答 1查看 1.1K关注 0票数 2

我正试图完成一项家庭作业脚本作业,实际上我根本没有考虑到这一点,需要为脚本找到/研究一个修复程序。我需要运行的脚本查看一个三列(名称、ID、部门)文件(我给出的文件),并且应该创建新的组和用户,并将用户分配给正确的组。每个组只能创建一次。我的问题是使用带令牌的FOR /f命令。

档案1

代码语言:javascript
复制
@ECHO OFF

SET /p userfFile="what is the file that contains new hires: "

REM Loop through the lines of the file
REM and copy the the department names to a new file
FOR /f "tokens=3 skip=4" %%b IN (%userfFile%) DO ECHO %%b >> Department.txt

REM sort the file back into itself
sort Department.txt /0 Department.txt

REM a variable to keep track of the groups that have neen created 
SET LastGroupCreated=None

FOR /f %%a IN (Department.txt) DO CALL CUG

FOR /f "tokens=2,3 skip=4" %%A IN (%userfFile%) DO CALL

REM Clean Up
DEL Department.txt
SET userfFile= 

档案2 "CUG“

代码语言:javascript
复制
REM Have we already processed this name (%1) ?
IF "%LastGroupCreated%"=="%1" GOTO :EOF

REM Not Processed, so create and update the variable
NET LOCALGROUP /ADD %1
SET LastGroupCreated=%1

我相信文件CUG是好的,但文件一不断给我错误。如果有人能帮我做这件事我会很感激的。我已经试过了我能想到的一切并且被困住了。

干杯

詹姆斯

EN

回答 1

Stack Overflow用户

发布于 2012-11-29 07:00:00

很少有错误:

FOR /f %%a IN (Department.txt) DO CALL CUG

  1. 在这里,您可以调用没有参数的CUG,但是您确实使用了%1。您应该使CUG成为一个子例程,而不是一个不同的文件,并将一个参数传递给CUG
  2. CUG文件中,您可以重用%LastGroupCreated%,您需要在文件开始时使用SETLOCAL NABLEDELAYEDEXPANSION
  3. FOR /f "tokens=2,3 skip=4" %%A IN (%userfFile%) DO CALL -打什么电话?

代码语言:javascript
复制
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
...
FOR /f %%a IN (Department.txt) DO CALL :CUG %%a
...
goto :eof

:CUG
REM Have we already processed this name (%1) ?
IF "!LastGroupCreated!"=="%1" GOTO :EOF

REM Not Processed, so create and update the variable
NET LOCALGROUP /ADD %1
SET LastGroupCreated=%1
goto :eof
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13544406

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档