lefg 276 Geschrieben 6. Oktober 2004 Melden Teilen Geschrieben 6. Oktober 2004 Es wird also eine Möglichkeit zum Beenden der Schleife beim Erreichen des gewünschten Ergebnisses benötigt. Durch Anhängen von GOTO mit dem Sprungziel OUT mittels der Verknüpfung & wird das erreicht. for /f "tokens=3" %%i in (c:\userlog.txt) do if %%i"==LUBECA\User5" echo 1 & goto out :out Ich mache jetzt erstmal Mittag. Zitieren Link zu diesem Kommentar
lefg 276 Geschrieben 6. Oktober 2004 Melden Teilen Geschrieben 6. Oktober 2004 Original geschrieben von knoffhoff Verstehe ich dich richtig, wenn du mir damit sagen willst, dass ich die liste in einer for schleife ständig nach "testuser" oder anderen inhalten/usernamen abfragen soll? Nein, das ist ja nicht nötig. Das geschieht im Loginscript. Und dann wird der User abgemeldet. Bis später. Zitieren Link zu diesem Kommentar
knoffhoff 10 Geschrieben 6. Oktober 2004 Melden Teilen Geschrieben 6. Oktober 2004 hehe, na dann mal guten hunger :) scheinst heute echt richtig gute laune zu haben wa?!?! bis hierhin hab ich alles verstanden! nur ein paar kleine "Syntax" fragen hätte ich: warum wird das % immer 2mal vor das i gehängt und warum benötige ich die echo 1 Ausgabe? Aber lass es dir erstma schmecken. Werd jetzt auch erstma ins Schnitzel beissen :D Zitieren Link zu diesem Kommentar
lefg 276 Geschrieben 6. Oktober 2004 Melden Teilen Geschrieben 6. Oktober 2004 Die %% sind in einer Batch nötig, an der Eingabeaufforderung nur %. Warum weiss ich nicht mehr. Die Echoausgabe ist nur zum Testen ob die Bedingung erfüllt. Wir kommen gleich einen kritischen Punkt. Möglicherweise bleiben wir dort stecken und müssen umdenken. Ich entwickle das hier sozusagen on-the-fly. Bei der Vergleichsoperation wird der Term User5 durch die Variable %username% ersetzt. Darin steht der Name des am Rechner angemeldeten Benutzers. Leider steht dieser in Kleinbuchstaben, in der Liste von PsLoggedOn in Großbuchstaben. Damit wird der Vergleich nicht erfüllt. for /f "tokens=3" %%i in (c:\userlog.txt) do if %%i==LUBECA\%username% echo 1 & goto out :out Jetzt muß man wohl bei PsLoggedOn schauen, ob die Ausgabe in Kleinbuchstaben möglich ist. Oder ob es bei der Vergleichsoperation einen Schalter gibt Zitieren Link zu diesem Kommentar
lefg 276 Geschrieben 6. Oktober 2004 Melden Teilen Geschrieben 6. Oktober 2004 Und damit stecke ich fest. Ich kenne bei Batches keine reguläre Möglichkeit zum Wandeln von Klein- in Großbuchstaben. Möglicherweise kann man per Registryeintrag den Variableninhalt beinfussen. Oder man schreibt das Ganze in einer höheren Programmsprache. Ich will jetzt mal einen Versuch machen. Dazu melde ich mich ab. Zitieren Link zu diesem Kommentar
knoffhoff 10 Geschrieben 6. Oktober 2004 Melden Teilen Geschrieben 6. Oktober 2004 ist der /i nicht für die großschreibung? ++++ if /i %username%==testuser goto test ++++ sagt doch auch nur, das der %username% sowohl groß als auch klein geschrieben werden kann oder? bis gleich. Zitieren Link zu diesem Kommentar
lefg 276 Geschrieben 6. Oktober 2004 Melden Teilen Geschrieben 6. Oktober 2004 Wollen wir gleich mal sehen. Das Programm sieht jetzt so aus. c:\PsLoggedOn.exe \\1fs-Lubeca > c:\userlog.txt for /f "tokens=3" %%i in (c:\userlog.txt) do if %%i==LUBECA\LEFG c:\logoff.exe /f /n Mit der logoff.exe aus dem RK wird der user abgemeldet. Zitieren Link zu diesem Kommentar
lefg 276 Geschrieben 6. Oktober 2004 Melden Teilen Geschrieben 6. Oktober 2004 Das klappt wunderbar. Das mit if /i war regelrecht verschüttet. Naja, das Alter und der Gerstensaft. :) c:\PsLoggedOn.exe \\1fs-Lubeca > c:\userlog.txt for /f "tokens=3" %%i in (c:\userlog.txt) do if /i %%i==LUBECA\%username% c:\logoff.exe /f /n Ich weiss nur nicht, wie praktikabel die Methode bei einer grossen Benutzermenge und vielen Server ist. Das muss wohl man austesten. Zitieren Link zu diesem Kommentar
lefg 276 Geschrieben 6. Oktober 2004 Melden Teilen Geschrieben 6. Oktober 2004 Vermeiden wir das Einlesen in eine Textdatei und deren Auswertung. Das Beschleunigt die Sache wesendlich. for /f "tokens=3" %%i in ('c:\PsLoggedOn.exe \\1fs-Lubeca') do if /i %%i==LUBECA\%username% c:\logoff.exe /f /n Ich glaube, damit haben wir es geschafft. Viel Erfolg Edgar Zitieren Link zu diesem Kommentar
lefg 276 Geschrieben 6. Oktober 2004 Melden Teilen Geschrieben 6. Oktober 2004 for /f "tokens=3" %%i in ('c:\PsLoggedOn.exe \\Server') do if /i %%i==Domäne\%username% c:\logoff.exe /f /n Zitieren Link zu diesem Kommentar
knoffhoff 10 Geschrieben 7. Oktober 2004 Melden Teilen Geschrieben 7. Oktober 2004 guten morgen edgar, musste gestern noch schnell weg und konnte die ganze zeit nicht mehr online (bis jetzt ;) ) werd es mal gleich ausprobieren, aber erstmal ein dickes danke für deinen einsatz/mühe!!! Zitieren Link zu diesem Kommentar
lefg 276 Geschrieben 7. Oktober 2004 Melden Teilen Geschrieben 7. Oktober 2004 Moin Knoffhoff, ich wünsche Dir viel Erfolg. Gruß Edgar Zitieren Link zu diesem Kommentar
lefg 276 Geschrieben 7. Oktober 2004 Melden Teilen Geschrieben 7. Oktober 2004 Einführung der Variablen %userdomain%. for /f "tokens=3" %%i in ('c:\PsLoggedOn.exe \\1fs-Lubeca') do if /i %%i==%userdomain%\%username% c:\logoff.exe /f /n Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.