lefg 276 Geschrieben 25. August 2004 Melden Geschrieben 25. August 2004 Die Variable %active% wird eingeführt. Ihr sind wahlweise die Werte yes oder no zu zuweisen. c: cd\ net group FfBM > c:\FfBM.txt set active=yes call :subwork %active% pause :subwork echo %active% set token=1 call :subfor set token=2 set active=%%1 call :subfor set token=3 set active=%%1 call :subfor :eof :subfor echo %active% for /F "tokens=%token% skip=6" %%e in (c:\FfBM.txt) do call :subuser %%e %active% goto :eof :subuser set user=%1 if %user%"==Der" goto :eof if %user%"==Befehl" goto :eof if %user%"==wurde" goto :eof net user %user% /active:%active% pause goto :eof Zitieren
lefg 276 Geschrieben 25. August 2004 Melden Geschrieben 25. August 2004 Ein paar kleine Fehler beseitigt und einge Feinheiten eingebaut. @echo off c: cd\ echo Geben Sie zum Aktivieren oder Deaktivieren der Konten yes oder no ein! set /p active= if %active%"==yes" goto main if %active%"==no" goto main exit :main net group FfBM > c:\FfBM.txt call :subwork %active% pause exit :subwork set token=1 call :subfor set token=2 call :subfor set token=3 call :subfor goto :eof :subfor for /F "tokens=%token% skip=6" %%e in (c:\FfBM.txt) do call :subuser %%e %active% goto :eof :subuser set user=%1 if %user%"==Der" goto :eof if %user%"==Befehl" goto :eof if %user%"==wurde" goto :eof echo %user% net user %user% /active:%active% goto :eof Zitieren
lefg 276 Geschrieben 25. August 2004 Melden Geschrieben 25. August 2004 Leider weiss ich nicht, wie der Status eines Kontos abfragbar ist? Damit könnte man einen Toggleswitch bauen. Zitieren
lefg 276 Geschrieben 25. August 2004 Melden Geschrieben 25. August 2004 Auf die Tabelle in der Datei kann verzichtet werden. @echo off c: cd\ echo Geben Sie zum Aktivieren oder Deaktivieren der Konten yes oder no ein! set /p active= if %active%"==yes" goto main if %active%"==no" goto main exit :main call :subwork %active% pause exit :subwork set token=1 call :subfor set token=2 call :subfor set token=3 call :subfor goto :eof :subfor for /F "tokens=%token% skip=6" %%e in ('net group ffbm') do call :subuser %%e %active% goto :eof :subuser set user=%1 if %user%"==Der" goto :eof if %user%"==Befehl" goto :eof if %user%"==wurde" goto :eof echo %user% net user %user% /active:%active% goto :eof Zitieren
lefg 276 Geschrieben 26. August 2004 Melden Geschrieben 26. August 2004 Original geschrieben von lefg Leider weiss ich nicht, wie der Status eines Kontos abfragbar ist? Damit könnte man einen Toggleswitch bauen. Das geht mit net user username. Zitieren
J11001010 10 Geschrieben 30. August 2004 Autor Melden Geschrieben 30. August 2004 Habe da mal bisschen rumgespielt, bekomme immer die Meldung: "goto" ist an dieser Stelle Syntaktisch und nicht verabeitbar. Kann mir jemand das Programm zusammenhängend schreiben? Zitieren
lefg 276 Geschrieben 31. August 2004 Melden Geschrieben 31. August 2004 Im Programm gibt es drei Stellen mit goto. Nämlich am Ende von subwork, subfor und subuser. Die Zeile heisst jeweils goto :eof und hat die Wirkung eines Return. Es bewirkt die Rückkehr aus der subroutine hinten den Aufruf(Call). Leicht zu übersehen ist der Doppelpunkt. Zitieren
lefg 276 Geschrieben 31. August 2004 Melden Geschrieben 31. August 2004 Ich habe glatt die beiden if...goto übersehen. Dort steht kein Doppelpunkt. Es ist ein Jump. Die Augen lassen nach, die Zähne fallen aus. :) Zitieren
J11001010 10 Geschrieben 2. September 2004 Autor Melden Geschrieben 2. September 2004 Ich bekomme immer wieder dieser syntaktischer Fehler, wenn ich die ersten Zeilen mit der auswahl weglasse läuft der rest einigermaßen. Kann jemand das ganze Programm zusammenhängend aufschreiben? Zitieren
lefg 276 Geschrieben 2. September 2004 Melden Geschrieben 2. September 2004 @echo off c: cd\ set group=ffbm set active=yes rem set active=no call :main pause exit :main call :subwork %active% goto :eof :subwork set token=1 call :subfor set token=2 call :subfor set token=3 call :subfor goto :eof :subfor for /F "tokens=%token% skip=6" %%e in ('net group %group%') do call :subuser %%e %active% goto :eof :subuser set user=%1 if %user%"==Der" goto :eof if %user%"==Befehl" goto :eof if %user%"==wurde" goto :eof echo %user% net user %user% /active:%active% goto :eof Probiere es mal so. Ersetze ffbm durch einen Gruppennamen Deiner Wahl. Ich habe diese und auch die vorherige Version eben am DC getestet. set active=yes rem set active=no Setze nach Bedarf aktive=yes oder active=no Gruß Edgar Zitieren
J11001010 10 Geschrieben 2. September 2004 Autor Melden Geschrieben 2. September 2004 Habe mal ein Abbild der DOS Box erstellt, kann es sein das Fehler nur bei mir liegt, da er bei euch nicht kommt, an was kann das nur liegen? dos.bmp Zitieren
ANCIENT 10 Geschrieben 2. September 2004 Melden Geschrieben 2. September 2004 ich kann mich irren aber du hast ja gesagt das ganze passiert zeitgesteuert oder ? währe es da nicht viel einfacher den usern einfach zu diesem zeitpunkt die anmeldung zu verweigern ?(Im ad user eigenschaften -> profil -> erlaubte anmeldezeiten) MFG Ancient Zitieren
lefg 276 Geschrieben 3. September 2004 Melden Geschrieben 3. September 2004 Tritt der Fehler auch auf, falls nachfolgendes im Programm steht? c: cd\ Sonst kopiere Dein Programm hierher! Zitieren
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.