批量脚本获取本地机器的所有用户列表

时间:2015-03-26 13:50:52

标签: batch-file automation

批处理脚本,用于查找在本地计算机上拥有帐户的所有用户,但当前登录的用户和其他默认用户除外。

代码:

@echo off
SET "Value="
SET Users="dir C:\Users\ /B"
FOR /F "tokens=1*" %%A IN ('%Users%') DO (
    SET "Name=%%A"
    IF /I "%NAME%" NEQ "Administrator" (
        IF /I "%NAME%" NEQ "Public"(
            IF /I "%NAME%" NEQ %USERNAME% (
                SET "Value=%Value% "
                SET "Value=%Value%%%A"

            )
        )
    )
)
echo %Value%

这个逻辑是否正确?遇到语法问题。接受建议。 我想将所有用户存储在一个变量中。

我认为修正后的上述脚本将是这样的: user1 user2...

但是我想使用换行函数而不是空格作为分隔符。类似的东西:

user1
user2

1 个答案:

答案 0 :(得分:1)

@echo off
SET "Value="
SET Users="dir C:\Users\ /B"
setlocal enableDelayedExpansion
FOR /F "tokens=1*" %%A IN ('%Users%') DO (
    SET "Name=%%A"
    IF /I "!NAME!" NEQ "Administrator" (
        IF /I "!NAME!" NEQ "Public" (
            IF /I "!NAME!" NEQ !USERNAME! (
                SET "Value=!Value! "
                SET "Value=!Value!%%A"

            )
        )
    )
)
echo %Value%

您需要进行delayed扩展,并且在其中一个左括号之前错过了一个空格。