【问题标题】:Remove all users with a 0 at the end of profile name删除配置文件名称末尾带有 0 的所有用户
【发布时间】:2019-05-11 16:45:34
【问题描述】:

我正在尝试列出机器上的所有配置文件。但是,我想忽略所有以 0 结尾的配置文件。

列出所有用户的内容是:

@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 . . .

想要的结果:

 userB
Press any key to continue . . .

有什么想法吗?

【问题讨论】:

  • DIR 命令的输出通过管道传送到FINDSTR 命令。
  • 谢谢! | FINDSTR /e [a-z]
  • 我会使用findstr /V /E "0"。但请注意,用户配置文件文件夹名称可能不等于用户名,尤其是当用户名已更改时...

标签: batch-file replace cmd find


【解决方案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% 将匹配配置文件目录的名称之外,还有更可靠的方法。如果您更改配置文件名称,保存其文件的目录不会更改名称以匹配新名称。

【讨论】:

    【解决方案2】:
    dir c:\users\*0.* /ad | Findstr /c:Administrators /v
    

    通配符是正则表达式。

    【讨论】:

    • 欢迎来到stackoverflow。你需要充分解释你的答案。照原样,您的帖子不清楚,可能需要删除。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-08
    • 2019-09-05
    相关资源
    最近更新 更多