我正在尝试列出计算机上的所有配置文件。但是,我想忽略所有以0结尾的配置文件。
我将列出所有用户的是:
Cartfile
结果是:
@ECHO OFF
:begin
SET "Value="
SET Users="dir \\my-pc\C$\Users\ /B /L"
setlocal enableDelayedExpansion
FOR /F "tokens=1*" %%A IN ('%Users%') DO (
SET "Name=%%A"
IF /I "!NAME!" NEQ "Administrator" (
IF /I "!NAME!" NEQ "ADMINI~1" (
IF /I "!NAME!" NEQ !USERNAME! (
SET "Value=!Value! "
SET "Value=!Value!%%A"
)
)
)
)
echo %Value%
所需结果:
userA0 userB userC0
Press any key to continue . . .
有什么想法吗?
答案 0 :(得分:1)
如果您要从中检索信息的计算机在网络上的其他位置,则可以尝试:
@Echo Off
Set "UserList="
For /F "UseBackQ Skip=1 Delims=" %%A In (`WMIC /Node:'My-PC'` /User:'Administrator' /Password:'MyPa55w0rd' Path^
Win32_UserProfile Where "Special='False' And Not LocalPath Like '%%0'" Get LocalPath 2^>Nul`
) Do For /F "Tokens=*" %%B In ("%%~nxA") Do Call :Sub %%~B
Set UserList 2>Nul
Pause
Exit/B
:Sub
If Not Defined UserList (Set "UserList="%*"") Else Set "UserList=%UserList%,"%*""
GoTo :EOF
如果您正在从本地PC检索:
@Echo Off
Set "UserList="
For /F "Skip=1 Delims=" %%A In ('WMIC Path^
Win32_UserProfile Where "Special='False' And Not LocalPath='%UserProfile:\=\\%' And Not LocalPath Like '%%0'" Get LocalPath 2^>Nul'
) Do For /F "Tokens=*" %%B In ("%%~nxA") Do Call :Sub %%~B
Set UserList 2>Nul
Pause
Exit/B
:Sub
If Not Defined UserList (Set "UserList="%*"") Else Set "UserList=%UserList%,"%*""
GoTo :EOF
这些绝对未经测试,因为我无法使用Windows PC,只是Android手机。如果它们有问题,请发表评论,如果有机会,我会尝试进行必要的修改。
请注意,比假设%UserName%
将与配置文件目录的名称匹配更可靠的方法。如果您更改配置文件名称,则保存其文件的目录不会更改名称以匹配新名称。
答案 1 :(得分:0)
dir c:\users\*0.* /ad | Findstr /c:Administrators /v
通配符是RegEx。