簡體   English   中英

批量刪除多個管理員帳戶(Win7)

[英]Deleting multiple admin accounts in Batch ( Win7 )

我在嘗試使用net localgroup刪除所有管理員帳戶(在2 specyfic旁邊)時遇到了大問題。 問題是沒有AND運算符,因此必須用某種更困難的方法來完成。

for /F "tokens=*" %%G in ('net localgroup administrators') Do (
If %%G == Administrator (goto:ex)
If %%G == MWAdmin (goto:ex)
net localgroup administrators %%G /delete
:ex)

您的問題所在:

:ex)

這對於批處理沒有意義,標簽不能位於代碼塊中,因為它會破壞該塊,並且由於語法錯誤而放棄批處理。

您可以通過用call檢查塊外的帳戶名稱來解決此問題; 就像goto :eofcall之后返回到call ,因此允許在for循環中離開並返回到它離開的地方。

for /f "tokens=*" %%G in ('net localgroup administrators') do (
    call :checkName "%%~G"
)

:: If name matches if, go back to for loop, else del.
:checkName
if "%~1" == "Administrator" goto :eof
if "%~1" == "MWAdmin" goto :eof     
net localgroup administrators "%~1" /delete
goto :eof

以防萬一,讓我們突出顯示:

call :label "%variable%"

使用此方法意味着到:label ,可以使用%1來獲取%variable%的值,並且~可以與%~1一起添加以刪除引號。 這主要用於將%%X的值帶到for循環之外,以便於處理。


或者在for循環中使用neq和嵌套的neq方法;

for /f "tokens=*" %%G in ('net localgroup administrators') do (
    if "%%~G" neq "Administrator" (
        if "%%~G" neq "MWAdmin" (
            net localgroup administrators %%G /delete
        )
    )
)

注意,我將%%G制成%%~G MWAdmin ,並在AdministratorMWAdmin周圍添加了引號,以確保穩定性,以防將來的名稱引起語法錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM