2014-05-23 11 views
0

Comment obtenir uniquement la légende à partir de la sortie de cette commande de traitement par lots?Analyse de fichiers par lots

commande

wmic group where (domain='%computername%' and SID='S-1-5-32-544') get caption 

et la sortie est

Caption       
abcdefgh768f\Administrators 

Je dois lire que "abcdefgh768f \ Administrateurs" de ce

Répondre

1
@echo off 
    setlocal enableextensions disabledelayedexpansion 

    set "caption=" 
    for /f "tokens=2 delims=," %%a in (
     'wmic Group where "Domain='%computerName%' and SID='S-1-5-32-544'" get Caption^,SID /format:csv ^| find "%computerName%" ' 
    ) do set "caption=%%a" 

    echo [%caption%] 

Dans le code, la production de wmic a été requis au format csv (les champs sont séparés par des virgules) et le champ sid est inclus. De cette façon, le champ de légende est le deuxième champ de l'enregistrement (le champ de nœud est le premier) et le sid est le dernier. Ceci est fait pour éviter l'inclusion dans le champ de légende des retours chariot supplémentaires qui sont ajoutés à la fin de la ligne. Commande exécutera la commande wmic, en séparant la ligne sur les virgules et en prenant le second champ. find est inclus pour éviter le traitement des en-têtes dans la sortie wmic.