Jump to content

FOR Schleifenausgabe weiterverwenden


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo,

 

ich glaub das weiße eh keiner, aber ich probiers:

 

eine knifflige Frage zum Thema For schleifen in Batch's.

Hintergrund, ich habe eine Textdatei, in der stehen zB.

Gruppenname;Druckername;Netzlaufwerk;Netzlwbuchstabe;...

 

Ich möchte nun per Script, das Ergebnis von "ifmember /list" verwenden, also die ausgabe in welchen Gruppen der User mitglied ist, und dann Abhänig davon, ob in einer der Zeilen des Textfiles einer seiner Gruppennamen aufgeführt wird, zB. Netzlaufwerke und/oder Drucker verbinden.

 

Das ist manuell kein thema. Gescriptet aber schwer. Ich häng voll

 

Also ich bekomm es hin, die aktuellen Gruppen auszulesen und anzeigen zu lassen.

 

FOR /F "tokens=2 delims=\&." %%a IN ('%systemroot%\system32\ifmember.exe /list') DO (echo %%a)

 

So weit so gut, Die Gruppe wird nun brav angezeigt, zeile für Zeile.

Ich möchte aber jetzt weiterarbeiten und die ausgabe von %%a (nämlich die Gruppe) weiterverwenden um in einen weiteren IF Befehl anzugeben wenn "gruppe" gleich der "Name" in der Liste "mache".

 

Würde so aussehen:

FOR /F "tokens=2 delims=\&." %%a IN ('%systemroot%\system32\ifmember.exe /list') DO (set gruppe1="%%a" & FOR /F "usebackq tokens=1-7

 

delims=;" %%a IN ("D:\test.txt") DO (IF "%gruppe1%"=="%%g" (echo gruppe gleich) else (echo nein & echo gruppe ist leider %gruppe1%)))

 

Mein Problem,

jetzt hab ich noch nicht einmal den eigentlichen Befehl verwendet um die Drucker zu verbinden, denn ich scheitere ja schon daran, dass ich es nicht schaffe das allererste %%a in einer Variable weiterzuverwenden. Er zeigt einfach nichts an...

 

Haben würde ich es ja gerne so:

 

->Ist der Name der Windows Gruppen auch in der Textdatei vorhanden

->Dann nimm die Zeile aus der Textdatei

->Und verbinde zB. zu dem Drucker der in Spalte 2 steht

 

Befehle für Druckerverbinden printui.dll... und net use etc... kenne ich, brauche aber hilfe mit der Schleife.

Link zu diesem Kommentar

Eigentlich müsste die Variable %%a doch nicht in eine neue Variable umgespeichert werden, oder?

Das %%g in der 2. Schleife einfach mit dem %%a der ersten vergleichen sollte reichen (bei mir hier funktionierts zumindest):

FOR /F "tokens=2 delims=\&." %%a IN ('%systemroot%\system32\ifmember.exe /list') DO (FOR /F "usebackq tokens=1-7 
delims=;" %%g IN (D:\test.txt) DO (IF "%%a"=="%%g" (echo gruppe gleich) else (echo nein & echo gruppe ist leider %%a)))

Link zu diesem Kommentar

Hallo,

 

du bist der Hammer. Funktioniert!!! Hätte ich gar nicht geglaubt!

 

Für alle die's interessiert, hier der code

 

FOR /F "tokens=2 delims=\&." %%a IN ('%systemroot%\system32\ifmember.exe /list') DO (FOR /F "usebackq tokens=1-7 delims=;" %%g IN ("U:\input.txt") DO (IF "%%a"=="%%m" (echo gruppe gleich, verbinde nun & net use %%j: \\%%k\%%l) else (echo nein gruppe ist leider %%a)))

 

input.txt sieht so aus

ForFutureUse;ForFutureUse;ForFutureUse;Y;F2K803;DatenTechnik;GG-Technik

Link zu diesem Kommentar

Im Prinzip gehts schon, z.B. in der Art:

@echo off & Setlocal EnableDelayedExpansion
SET GRUPPEN=
FOR /F %%a IN (D:\test.txt) DO SET GRUPPEN=!GRUPPEN! %%a
echo %GRUPPEN%

 

Was nicht geht:

@echo off & Setlocal EnableDelayedExpansion
SET GRUPPE=
FOR /F %%a IN (D:\test.txt) DO (SET GRUPPE=%%a & echo %GRUPPE%)

 

Warum das so ist, weiß ich allerdings selber nicht ;)

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...