批处理脚本,用于查找在本地计算机上拥有帐户的所有用户,但当前登录的用户和其他默认用户除外。
代码:
@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
答案 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扩展,并且在其中一个左括号之前错过了一个空格。