Удалить всех пользователей с 0 в конце имени профиля - PullRequest
0 голосов
/ 10 декабря 2018

Я пытаюсь перечислить все профили на машине.Однако я хочу игнорировать все профили, оканчивающиеся на 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 . . .

Есть идеи?

Ответы [ 2 ]

0 голосов
/ 11 декабря 2018

Если компьютер, с которого вы получаете информацию, находится в другом месте в сети, вы можете попробовать:

@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

Если вы запрашиваете с локального ПК, возможно:

@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, только телефон с Android .Если с ними возникли проблемы, пожалуйста, оставьте комментарий, и я постараюсь изменить его по мере необходимости, когда у меня появится возможность.

Обратите внимание, что существуют более надежные методы, чем при условии, что %UserName% будет соответствовать названиюкаталог профиля.Если вы измените имя профиля, каталог с его файлами не изменит имя в соответствии с новым именем.

0 голосов
/ 10 декабря 2018
dir c:\users\*0.* /ad | Findstr /c:Administrators /v

Подстановочные знаки - RegEx.

...