2016-04-01 41 views
0

Net localgroups kullanarak tüm Administrator hesaplarını (2 özellikli) silmeye çalışırken büyük sorun yaşıyorum. Sorun, AND operatörü olmamasıdır, bu yüzden yapılması gereken daha zor bir yoldur. o blok kırar ve toplu nedeniyle sözdizimi hatası vazgeçmez olarak,Batch (Win7) 'de birden çok yönetici hesabını silme

Bu parti için hiçbir anlam ifade
:ex) 

, etiketler bir kod bloğu olamaz:

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) 
+0

Bu kod çalışıyor, ancak her yönetici hesabını siliyor ama Yönetici, hatta MWAdmin ... – vartier

+0

Ayrıca, taşma yığınına hoş geldiniz, teşebbüsünüzü gösterdiğiniz için teşekkürler ve ayrıntılı ayrıntılara oturmayın. Gelecekte, yorumunuzu bırakmak yerine, hata eklemek için yayınınızı düzenleyebilirsiniz. Cevabınızı çözdüğünüzün işaretini işaretlemeyi unutmayın. – Bloodied

cevap

0

Sorununuz çizgidir.

Bunu, bloğun dışındaki hesap adını call; call'dan sonra goto :eof kullanıldıktan sonra call'a geri dönülür, böylece bir for döngüsünde bıraktığı yere bırakılır ve geri dönülür.

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 

Her ihtimale vurgulamak sağlar:

call :label "%variable%" 

bu o :label gittiğinde, pass %variable% 'ın değeri elde etmek %1 kullanabileceğiniz anlamına gelir kullanma ve ~ ile eklenebilir Tırnakları kaldırmak için %~1. Bu daha kolay işlem için bir döngü dışında %%X değerini almak için yararlıdır.


ya da döngü için bir neq ve iç içe neq yöntemi kullanmak; gelecekteki bir isim sözdizimi hatalarına yol açar durum

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

Not i %%~G içine %%G yapılan ve Administrator ve MWAdmin etrafında tırnak eklendi, bu, istikrar içindir.