批量文件删除已停用的用户

时间:2012-11-17 23:33:08

标签: batch-file

我正在尝试构建一个批处理文件但由于未知原因,当执行该进程时,变量%UT:~47%保持为空并且仅在第二次执行后才被填充。如果我执行此一次回声结果为~47但是第二次结果结果显示是或否(Oui或非法语)。谁知道为什么?

第一个条件完美,如果没有参数。但如果我在参数中使用用户名执行我的批处理,则检查用户帐户是否已激活。我把这个单词''Compte''用英文帐户代替,在C:\ user.txt文件中,但是set / p似乎有问题因为我的echo命令给我~47为空但文件c :\ user.txt包含

(Compte : actif                                 Oui or Non)

英文版

(Account : active                                Yes or No)

@echo off
::if no parameter
if "%~1" == "" echo Please Indicate an User to delete ! & exit /b 0
for %%U in (%*) do (
    net user %%U | find "Compte">c:\user.txt || echo can't find user %%U
    set /p UT=<c:\user.txt
    echo %UT:~47%
)

1 个答案:

答案 0 :(得分:0)

这是因为您在for循环中设置变量“UT”,搜索“批量延迟扩展”以获取更多信息。此外,您可能不需要首先将输出重定向到文件,您可以使用for /f "tokens=* eol=" %%a in ('net user add %%U')直接捕获变量中的输出。