删除配置文件名称末尾带有0的所有用户

时间:2018-12-10 18:24:00

标签: batch-file replace cmd find

我正在尝试列出计算机上的所有配置文件。但是,我想忽略所有以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 . . .

有什么想法吗?

2 个答案:

答案 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。