Verwenden von wmic zum Abrufen einer Arbeitsgruppe in einer Batchdatei

1429
BillH

Ich bin nicht wirklich mit Batch-Dateien vertraut, aber ich versuche, die Arbeitsgruppe zu nutzen wmic. Ich habe verschiedene forOptionen mit den Optionen ausprobiert . Bisher ist dies das beste Ergebnis, das ich bekommen habe.

for /f "skip=1" %%a in ('wmic computersystem get workgroup') do echo %%a 

Dies gibt zurück, was ich will, aber es gibt auch etwas anderes wider, weil es eine echo is offNachricht gibt . Ich möchte auch die Arbeitsgruppe auf eine Variable wie etwa so einstellen.

for /f "skip=1" %%a in ('wmic computersystem get workgroup') do set "myVar=%%a" 

Dies gibt jedoch nichts zurück. Ich gehe davon aus, dass ich verwenden muss tokensund / oder delims, aber ich habe einfach nicht das Wissen, damit es korrekt funktioniert.

Wenn mir jemand dabei helfen könnte, wäre ich sehr dankbar und vielleicht hilft es mir, etwas mehr über die Verwendung der forSchleife zu lernen . Ich weiß, dass dies wahrscheinlich sehr einfach ist. Bitte entschuldigen Sie, dass ich so unwissend bin.

1

1 Antwort auf die Frage

1
DavidPostill

Es ist auch etwas anderes, weil es eine gibt echo is off

Dies liegt daran, dass wmic(schlecht geschrieben) eine leere Zeile am Ende der Ausgabe ausgegeben wird.

Mit können Sie findstr /r /v "^$"die leere Zeile entfernen.

Verwenden einer Batchdatei:

@echo off setlocal for /f "usebackq skip=1 tokens=*" %%i in (`wmic computersystem get workgroup ^| findstr /r /v "^$"`) do set myVar=%%i echo %myVar% endendlocal 

Verwenden einer Befehlszeile:

for /f "usebackq skip=1 tokens=*" %i in (`wmic computersystem get workgroup ^| findstr /r /v "^$" ^| findstr /r /v "^$"`) do @set myVar=%i && echo %myVar% 

Anmerkungen:

  • for /fdurchläuft die wmicAusgabe.
  • skip=1Überspringt die Kopfzeile (enthält VariableValue)
  • findstr /r /v "^$"entfernt die abschließende Leerzeile aus der wmicAusgabe.

Beispielausgabe:

> wmic computersystem get workgroup Workgroup WORKGROUP   > for /f "usebackq skip=1 tokens=*" %i in (`wmic computersystem get workgroup ^| findstr /r /v "^$" ^| findstr /r /v "^$"`) do @set myVar=%i && echo %myVar% WORKGROUP  > 

Lesen Sie weiter

Das funktioniert für das, was ich brauche. Vielen Dank für die Hilfe und die Hinweise, damit ich verstehen kann, was ich mache. BillH vor 7 Jahren 0