42687
Goto Top

Schülerordner per Namenseingabe mappen

Hallo, ich verwalte ein kleines Schulnetzwerk und da wir keinen Server und keine servergespeicherten Benutzerprofile, haben alle Recher ein Konto welches heißt Schueler_1 usw. bis acht. so nun wollen wir nicht auf jedem Rechner jedes Benutzerkontoanlegen, nur damit die Schueler ihr Laufwerk bekommen. Ich dachte das das vlt. in einem Script geht das die Schueler erst du Klasse eingeben und dann den Namen. Am besten wäre eine Listbox oder wie das heißt, wo eine Auswahl steht. Das dateisystem ist Folgendermaßen aufgebaut:
\\Lehrer1\Klassenordner\%klasse%\%schuelername%

änderungen sind aber möglich
das Laufwerk soll dann den Buchstaben H:\ haben
es würde auch gehen, das alle schuelerordner in einem Ordner wären und die Eingabe das Klasse entfällt.
Danke.

Content-Key: 79342

Url: https://administrator.de/contentid/79342

Printed on: April 25, 2024 at 20:04 o'clock

Member: schregi82
schregi82 Jan 28, 2008 at 18:07:04 (UTC)
Goto Top
Bitteschön:

@echo off
set /p schuelername="Bitte Namen eingeben..."  
if not exist "\\schueler\"%schuelername%" mkdir "\\schueler\"%schuelername%"  
net use h: "\\schueler\"%schuelername%" /persistent:no  
echo %date% am %time% >> \\schueler\"%schuelername%"\logfile.log  
echo %computername% >> \\schueler\"%schuelername%"\logfile.log  
echo ------------------------------------------ >> \\schueler\"%schuelername%"\logfile.log  

Das ganze mit Klassen- und Namenseingabe:
@echo off
set /p klasse="Bitte Klasse eingeben..."  
set /p schuelername="Bitte Namen eingeben..."  
if not exist "\\Lehrer1\Klassenordner\%klasse%" mkdir "\\Lehrer1\Klassenordner\%klasse%"  
if not exist "\\Lehrer1\Klassenordner\%klasse%\%schuelername%" mkdir "\\Lehrer1\Klassenordner\%klasse%\%schuelername%"  
net use h: "\\Lehrer1\Klassenordner\%klasse%\%schuelername%" /persistent:no  
echo %date% am %time% >> "\\Lehrer1\Klassenordner\%klasse%\%schuelername%\logfile.log"  
echo %computername% >> "\\Lehrer1\Klassenordner\%klasse%\%schuelername%\logfile.log"  
echo ------------------------------------------ >> "\\Lehrer1\Klassenordner\%klasse%\%schuelername%\logfile.log"  

Hinweis:
Bei einem Schreib / Tippfehler im Namen in der Klasse wird ein neuer Ordner erstellt !!
Sprich der Schüler und die Klasse hat möglicherweise 2 od. mehrere Ordner.
Würd ich dir nicht empfehlen, alle Schueler in einem Ordner ist sicher die übersichtlichere Lösung.

Wie du denn Hinweis mit dem letzten Login hinbekommst kannst du hier nachlesen:
Letzten Login anzeigen - Auswertung einer Logdatei

lg,
Mitglied: 42687
42687 Jan 28, 2008 at 19:16:24 (UTC)
Goto Top
Hallo, vielen danke, dies funktioniert erst mal, wäre es jetzt noch möglich, erst ein Test zu machen ob der Ordner besteht und wenn nicht, das er den dann erstellt??
Lg
Member: schregi82
schregi82 Jan 28, 2008 at 19:33:37 (UTC)
Goto Top
Sorry, habe meinen ersten Post unabsichtlich editiert statt zitiert, aber ich denke du kommst auch so klar.

lg,
Mitglied: 42687
42687 Jan 28, 2008 at 20:24:30 (UTC)
Goto Top
super super super!!!
1A
aber geht es jetzt noch das das mit den Eigenen Dateien verknüpft wird?
Member: schregi82
schregi82 Jan 28, 2008 at 21:13:28 (UTC)
Goto Top
Das musst du mir jetzt nochmal erklären, was willst du mit den Eigenen Dateien machen?

lg,
Mitglied: 42687
42687 Jan 29, 2008 at 13:04:54 (UTC)
Goto Top
danke, brauche ich nicht mehr ich habe einfach bei Eigene Dateien H: angegeben und da funktionierts. Könntest du mir das aber bitte nochmal ein bisschen umschreiben, sodass wenn es den Ordner nicht gibt er zum End kommt oder es wiederholt. Bitte mit den Klassen, ich will nur nichts falschmachen.

Lg
Member: schregi82
schregi82 Jan 29, 2008 at 13:49:58 (UTC)
Goto Top
Hallo nochmal,
hoffe es passt dir so:

Ausgangslage:
Die musst alle Klassen und deren Schüler einmalig anlegen. Wenn der Schueler nicht existiert wird das Laufwerk H: auch nicht gemapped. Sollte das von dir nicht gewünscht sein, musst du den Code von oben (mkdir) verwenden.

1. Kriterium - wenn es die KLASSE nicht gibt, muss er die Eingabe der Klasse wiederholen
2. Kriterium - wenn es den SCHÜLERNAMEN nicht gibt, muss er die Eingabe des SCHÜLERNAMENS wiederholen

@echo off
:s1
set /p klasse="Bitte Klasse eingeben..."  
if not exist == "\\Lehrer1\Klassenordner\%klasse%" echo Klasse nicht vorhanden !! & goto s1  
:s2
set /p schuelername="Bitte Namen eingeben..."  
if not exist == "\\Lehrer1\Klassenordner\%klasse%\%schuelername%" echo Schueler nicht vorhanden !! & goto s2  
net use h: "\\Lehrer1\Klassenordner\%klasse%\%schuelername%" /persistent:no  
echo %date% am %time% >> "\\Lehrer1\Klassenordner\%klasse%\%schuelername%\logfile.log"  
echo %computername% >> "\\Lehrer1\Klassenordner\%klasse%\%schuelername%\logfile.log"  
echo ------------------------------------------ >> "\\Lehrer1\Klassenordner\%klasse%\%schuelername%\logfile.log"  


Wenn du noch fragen hast, melde dich !
Mitglied: 42687
42687 Jan 29, 2008 at 14:48:52 (UTC)
Goto Top
Vielen Danke, genauso meinte ich das!!!
Echt toll hier.
Ich habe mir gedacht, ich lasse jetzt erst mal ca. 1 Monat das script drin mit der Ordnererstellung, so eben wie Schuelerselbstaufnahme und dannach stelle ich einfach auf das neue um. Wenn vorher der Ordner erstellt wurde, müssen die angaben jetzt richtig sein. Ich danke euch, aber eine Frage habe ich noch, ich habe das jetzt so eingebaut, das mit xcopy automatisch in die Schuelerverzeichnisse die Ordner eigene Bilder, Eigene Video und Eigene Musik übertragen werden. Diese ordner befinden sich auf \\Server\netlogon\autoeigdat. So und nun habe ich noch icons für die klassen und für die schuelerordner gemacht. Wäre es möglich in so eine setup-informations-datei reinzuschreiben, das das icon für den ordner auf \\Lehrer1\netlogon\symbole\schueler liegt??? Denn mit der Hand will ich das nicht alles machen.

Lg
Member: schregi82
schregi82 Jan 29, 2008 at 17:35:36 (UTC)
Goto Top
Hallo nochmal,

also dazu fällt mir gar nichts ein. Du kannst zwar über die rechte Maustate zig Ordner gleichzeitig das gleiche Icon verpassen, allerdings Ordner 1 Icon 1, Ordner 2 Icon 2, usw. da kenne ich keinen weg ...

Falls du doch noch etwas findest, es würde mich interessieren.

lg,
Mitglied: 42687
42687 Jan 30, 2008 at 17:02:50 (UTC)
Goto Top
Hallo zwei Fragen habe ich noch.
1. Frage:
Ich habe eingegeben, net use H: /delete /yes gleich am Anfang, damit H: frei ist.
Wenn H: aber noch nicht vergeben ist, kommt ein Fehler, wäre es möglich, das er erst prüft ob es ein H: gibt und wenn nicht einfach weiter macht und wenn es eins gibt es löscht.

2. Frage:
Geht es, dass auf dem Lehrerrechner ein Ordner ist, der heißt Teilnehmerverzeichnisse, und wenn sich ein Schueler an irgendeinem Rechner anmeldet, bekommt derjenige ja sein Verzeichnis als H: und nun soll der Lehrer in dem Ordner Teilnehmerverzeichnisse nur die derzeit angemeldeten Userverzeichnisse sehen um gegebenenfalls sich Dateien zu holen, die ein Schüler bearbeitet hat, oder diesem eine Datei zukommen zu lassen. Ich dachte vlt. kann man das über verknüfungenkopieren machen.

Lg
Member: schregi82
schregi82 Jan 30, 2008 at 19:52:02 (UTC)
Goto Top
Hallo Peter !

ad 1.)
Auch hier das selbe Spiel, ähnlich wie bereits oben:

if exist == "h:\" net use h: /del /yes  
.....

ad 2.)
Ein adaptiertes Script ermöglicht dem Lehrer nach Eingabe von Klasse und Schülername den Zugriff über den Explorer auf desen Verzeichniss - natürlich auch zum kopieren.

Falls du dich doch zu Verknüpfungen entscheidest:
Verknüpfungen erstellen
:s1
set /p klasse="Bitte Klasse eingeben..."  
if not exist == "\\Lehrer1\Klassenordner\%klasse%" echo Klasse nicht vorhanden !! & goto s1  
:s2
set /p schuelername="Bitte Namen eingeben..."  
if not exist == "\\Lehrer1\Klassenordner\%klasse%\%schuelername%" echo Schueler nicht vorhanden !! & goto s2  
explorer "\\Lehrer1\Klassenordner\%klasse%\%schuelername%"  
Mitglied: 42687
42687 Jan 31, 2008 at 15:32:55 (UTC)
Goto Top
nein, du ich meine, das wenn sich user y und user x an ihren Rechnern angemeldet haben, soll automatisch, auf dem Desktop ein Ordner sein, Schuelerordner in dem dann verknüpfungen zu nur den schuelern sind, die angemeldet sind.
noch ne frage, wenn ich dann beim abmelden speichern will wer das war gibt es die variable schuelername ja nicht mehr, geht das das man die nicht nochmal eingeben muss, sondern beim anmelden eine .txt auf C:\ erstellt wird in der einem wird der schuelername gespeichert und in der anderen, die Klasse. Wäre es nun möglich aus den .txt den inhalt auszulesen, und dann eben zu sagen, echo "schuelername von C:\" aus der Klasse "Klasse von C:\"meldete sich am %date% um %time% vom PC %computername% ab. >> Lehrer......
und im Logon dann eben echo %schuelername% > C:\schuelername.txt und echo %klasse% > C:\klasse.txt?
Member: schregi82
schregi82 Jan 31, 2008 at 19:00:00 (UTC)
Goto Top
Hallo guter Peter,

jetzt sei mir mal nicht böse, aber die täglich ändernden Wünsche sind grad noch so zu befriedigen.
Die eierlegende Wollmilchsau, die du da haben willst, die einem die Arbeit zu 100% abnimmt werd es NIE geben.
Von eueren 9 Wochen Urlaub sollte doch noch etwas Energie übergeblieben sein, ist ja auch noch nicht so lange her.

Firmen würden dafür schon wieder ein Menge Zeit od. Geld investieren:

Da ich hier im Forum als Privatperson agiere, habe ich einen Vorschlag:
Häng in "deinen" Klassenräumen einfach das Foto vom Präsidenten (ist zumindest in A so üblich, ab und stattdessen meines auf, dann sind wir quitt.

Aber gehens wir mal an:
(Das ganze ungetestet)

(inkl. der Variante mit Verlinkung, den Link hatte ich ja gepostet, hat dich aber scheinbar nicht gejuckt). Desktop ist aber heute nicht im Angebot - spezifizierter Ordner muss es auch tun.

 
@echo off
del c:\user.txt
:s1
set /p klasse="Bitte Klasse eingeben..."  
if not exist == "\\Lehrer1\Klassenordner\%klasse%" echo Klasse nicht vorhanden !! & goto s1  
:s2
set /p schuelername="Bitte Namen eingeben..."  
if not exist == "\\Lehrer1\Klassenordner\%klasse%\%schuelername%" echo Schueler nicht vorhanden !! & goto s2  
net use h: "\\Lehrer1\Klassenordner\%klasse%\%schuelername%" /persistent:no  
rem --------------------------------------------------------------------------------------------
setlocal
zielpfad=\\Lehrer1\PC\online
set "progtitel=%schuelername%"  
set "progdir="%windir%"  
set "progexe=explorer.exe /e,"\\Lehrer1\Klassenordner\%klasse%\%schuelername%"  
set "beschreibung=Erklärung eigentlich unnötig ..."  
echo Set objShell=WScript.CreateObject("Wscript.Shell")>%temp%\MakeShortCut.vbs  
echo Set objShortcut=objShell.CreateShortcut("%zielpfad%\%progtitel%.lnk")>>%temp%\MakeShortCut.vbs  
echo objShortcut.TargetPath="%progdir%\%progexe%">>%temp%\MakeShortCut.vbs  
echo objShortcut.Description="%beschreibung%">>%temp%\MakeShortCut.vbs  
echo objShortcut.WorkingDirectory="%progdir%">>%temp%\MakeShortCut.vbs  
echo objShortcut.Save>>%temp%\MakeShortCut.vbs
cscript //nologo %temp%\MakeShortCut.vbs
del %temp%\MakeShortCut.vbs
rem ---------------------------------------------------------------------------------------------
echo %schuelername%  >> \\Lehrer1\PC\LOG\%computername%.log
echo LOGIN am %date% um %time% >> \\Lehrer1\PC\LOG\%computername%.log
echo SCHUELERNAME:%schuelername% > c:\user.txt 
Wer online ist kannst du dir unter: \\Lehrer1\PC\online anschauen.
Wer an welchem Rechner wann angemeldet war: \\Lehrer1\PC\LOG\

Wie du folgende batch-Datei so einrichten kannst, das sie beim abmelden gestartet wird, erfährst du hier:
Nach Abmeldung per Task Batch starten

@echo off 
set file="c:\user.txt"  
FOR /F "skip=2 tokens=1 delims=" %%i in ('find /N "SCHUELERNAME:" %file%') do (  

call:auslesen %%i

pause
)

:auslesen
set "USER="  
set /a offset=%1-1
FOR /F "tokens=1* delims=:" %%a in ('more +%offset% %file%') do if not defined SCHUELERNAME set SCHUELERNAME=%%b  
rem ---------------------------------------------------------------------------------------------
if exist == "h:\" net use h: /del /yes  
rem ---------------------------------------------------------------------------------------------
echo LOGOFF am %date% um %date% >> "\\Lehrer1\PC\LOG\%computername%.log"  
echo --------------------------------- >> "\\Lehrer1\PC\LOG\%computername%.log"  
del "\\Lehrer1\PC\online\%SCHUELERNAME%.lnk"  
del c:\user.txt
Du kannst ja zusätzlich delage32 als Task um Mitternacht drüberlaufen lassen, damit er eventuell nicht gelöscht Einträge vom vorigen Tag löscht.
Mitglied: 42687
42687 Jan 31, 2008 at 19:27:38 (UTC)
Goto Top
Vielen, vielen Dank!!! Tut mir leid, wenn ich dich genervt habe, aber das mit den 9 Wochen Urlaub, ich bin Schüler einer 9. Klasse und da ist mir das was du mir schreibst, schon manchmal sehr fremd und kenne das nicht. Ich dachte auch, das noch andere sich daran beteiligen und nicht nur du.
Das wars erst mal. Ich danke dir. face-smile
Mitglied: 42687
42687 Mar 14, 2008 at 21:32:39 (UTC)
Goto Top
ich habe noch ein Problem, bei der Abmeldungsdatei, da wird bei mir auch die klasse ausgelesen und und da wird hinter die klasse ein Leerzeichen gesetzt. Wie geht das das ich auch einen Ordner meinetwege "klasse 1" benutzen kann und nicht "klasse 1 " Danke.
Member: schregi82
schregi82 Mar 18, 2008 at 14:55:51 (UTC)
Goto Top
Hallo Peter,
poste mal bitte dein aktuelles Script um das es geht.

lg
Mitglied: 42687
42687 Mar 18, 2008 at 15:11:36 (UTC)
Goto Top
Um dieses Script geht es:
Der soll die Klasse auslesen und auf dem Desktop dann einen Ordner mit Tauschverzeichnis erstellen und dort die datei reinkopiernen. Danke.
@echo off
set file="c:\class.txt"
FOR /F "skip=2 tokens=1 delims=" %%i in ('find /N "KLASSE:"%file%') do (

call:auslesen %%i

pause
)

:auslesen
set "CLASS="
set /a offset=%1-1
FOR /F "tokens=1* delims=:" %%a in ('more +%offset% %file%') do if not defined KLASSE set KLASSE=%%b
rem ---------------------------------------------------------------------------------------------

if not exist == "C:\Dokumente und Einstellungen\%username%\desktop\Tauschverzeichnis" mkdir "C:\Dokumente und Einstellungen\%username%\desktop\Tauschverzeichnis"
xcopy "\\Server\netlogon\Tauschverzeichnisse\%klasse%.lnk" "C:\Dokumente und Einstellungen\%username%\desktop\Tauschverzeichnis\%klasse%.lnk" /E /C /Y
pause
exit
Member: schregi82
schregi82 Mar 18, 2008 at 18:22:04 (UTC)
Goto Top
Was hat das mit einer "Abmeldedatei" zu tun ?

Und wie soll das Script "wissen" welche Klasse gerade Stunde hat ?
Ich nehme mal in c:\class.txt sind alle Klassen aufgeführt !?

Soll das ein Script für den Lehrer sein ?

Ein paar mehr Infos wären schon nicht schlecht.
Mitglied: 42687
42687 Mar 18, 2008 at 19:38:05 (UTC)
Goto Top
Tut mir leid, das ist also so wie man den vorherigen Scripten entnehmen kann, löscht der als erstes die Class.txt und dann schreibt er die aktuelle Klasse in die Class.txt. Dieses Script soll wie man den Dateipfaden entnehmen kann zum tauschen unter den Schuelern sein, und jede klasse hat einen ordner. Wenn der Lehrer nun sagt ihr dürft tauschen klickt der auf seinem Rechner ein Script an was über psexec beim Lehrer ein Tauschverzeichnisordner auf dem Desktop erstellt mit allen Klassen und bei den Schuelern ein Script startet welches für ihre aktuelle Klasse die Verknüpfung zu ihrem Klassentauschverzeichnis kopiert. Was das mit der abmelde datei zu tun hat kann ich dir sagen, das mit dem auslesen aus der class.txt. Wenn du noch Fragen hast stelle diese bitte.
Mitglied: 42687
42687 Mar 19, 2008 at 12:30:59 (UTC)
Goto Top
ich brauche wirklich dringend eine Antwort, danke.
Member: schregi82
schregi82 Mar 19, 2008 at 17:37:27 (UTC)
Goto Top
Und hier die dringende Antwort:
Dir ist aber schon klar das ich nicht haupberuflich hier im Forum unterwegs bin ?

Es wäre doch sehr hilfreich wenn du den kompletten Inhalt deines Scripts reinkopieren würdest, nicht nur 5 Zeilen, ich bin kein Hellseher welche werte du in class.txt stehen hast.

lg,
Mitglied: 42687
42687 Mar 19, 2008 at 19:22:14 (UTC)
Goto Top
Anmeldung Lehrer:
@echo off
if exist == "h:\" net use h: /del /yes
if exist == "c:\user.txt" del c:\user.txt
if exist == "c:\class.txt" del c:\class.txt
echo.
:s1
set /p klasse="Unterricht mit Klasse:"
if not exist == "\\Server\inis\LEHRER" echo Klasse nicht vorhanden, bitte wiederholen!! & goto > > s1
echo.
:s2
set /p schuelername="Name:"
if not exist == "\\Server\inis\Lehrer\%schuelername%" echo Schueler nicht vorhanden, bitte > wiederholen !! & goto s2
if not exist == "\\Server\inis\ver\%klasse%\" mkdir "\\Server\inis\ver\%klasse%"
net use H: \\Server\inis\LEHRER\%schuelername% /persistent:no
if not exist == \\Server\inis\pclog\%computername% mkdir \\Server\inis\pclog\%computername%
echo %schuelername% aus der Klasse %klasse% meldete sich an am %date% um %time% am PC %computername%. >> "\\Server\inis\pclog\%computername%\logfile.txt"
echo %schuelername% aus der Klasse %klasse% meldete sich an am %date% um %time% am PC %computername%. >> "\\Server\inis\slog\%schuelername%_anmeldung_logfile.txt"
echo %schuelername% aus der Klasse %klasse% meldete sich an am %date% um %time% am PC %computername%. >> "\\Server\inis\log\logfile.txt"
xcopy \\Server\netlogon\autoeigdat \\Server\inis\LEHRER\%schuelername% /E /C /Y /Q
if not exist == "C:\Dokumente und Einstellungen\%username%\desktop\Teilnehmerverzeichnisse" mkdir "C:\Dokumente und Einstellungen\%username%\desktop\Teilnehmerverzeichnisse"
xcopy "\\Server\inis\ver\%Klasse%" "C:\Dokumente und Einstellungen\%username%\desktop\Teilnehmerverzeichnisse" /E /C /Y /Q

echo SCHUELERNAME:%schuelername% > c:\user.txt
echo KLASSE:LEHRER > c:\class.txt

if %schuelername% == schmwill goto copy
exit

:copy
xcopy \\Server\inis\Probleme\p.lnk "C:\Dokumente und Einstellungen\%username%\desktop" /E /C /Y
exit

Anmeldung Schueler:

@echo off
if exist == "h:\" net use h: /del /yes
net time \\Peter /set /yes
if exist == "c:\user.txt" del c:\user.txt
if exist == "c:\class.txt" del c:\class.txt
:s1
set /p klasse="Klasse:"
if not exist == "\\Server\inis\%klasse%" echo Klasse nicht vorhanden, bitte wiederholen!! & goto s1
echo.
:s2
set /p schuelername="Name:"
if not exist == "\\Server\inis\%klasse%\%schuelername%" echo Schueler nicht vorhanden, bitte wiederholen !! & goto s2
if not exist == "\\Server\inis\ver\%klasse%\" mkdir "\\Server\inis\ver\%klasse%"
net use H: \\Server\inis\%klasse%\%schuelername% /persistent:no
if not exist == \\Server\inis\pclog\%computername% mkdir \\Server\inis\pclog\%computername%
echo %schuelername% aus der Klasse %klasse% meldete sich an am %date% um %time% am PC %computername%. >> "\\Server\inis\pclog\%computername%\logfile.txt"
echo %schuelername% aus der Klasse %klasse% meldete sich an am %date% um %time% am PC %computername%. >> "\\Server\inis\slog\%schuelername%_anmeldung_logfile.txt"
echo %schuelername% aus der Klasse %klasse% meldete sich an am %date% um %time% am PC %computername%. >> "\\Server\inis\log\logfile.txt"
xcopy \\Server\netlogon\autoeigdat \\Server\inis\%klasse%\%schuelername% /E /C /Y /Q

echo SCHUELERNAME:%schuelername% > c:\user.txt
echo KLASSE:%Klasse% > c:\class.txt

if %schuelername% == schmwill goto copy
exit

:copy
xcopy \\Server\inis\Probleme\p.lnk "C:\Dokumente und Einstellungen\%username%\desktop" /E /C /Y
exit

Abmeldung Lehrer:

@echo off
set file="c:\class.txt"
FOR /F "skip=2 tokens=1 delims=" %%i in ('find /N "KLASSE:" %file%') do (

call:auslesen %%i

pause
)

:auslesen
set "CLASS="
set /a offset=%1-1
FOR /F "tokens=1* delims=:" %%a in ('more +%offset% %file%') do if not defined KLASSE set KLASSE=%%b
rem ---------------------------------------------------------------------------------------------

set file="c:\user.txt"
FOR /F "skip=2 tokens=1 delims=" %%i in ('find /N "SCHUELERNAME:" %file%') do (

call:auslesen %%i

pause
)

:auslesen
set "USER="
set /a offset=%1-1
FOR /F "tokens=1* delims=:" %%a in ('more +%offset% %file%') do if not defined SCHUELERNAME set SCHUELERNAME=%%b
rem ---------------------------------------------------------------------------------------------
if exist == "h:\" net use h: /del /yes
rem ---------------------------------------------------------------------------------------------
echo %schuelername% aus der Klasse %klasse% meldete sich ab am %date% um %time% am PC %computername%. >> "\\server\inis\slog\%schuelername%_abmeldung_logfile.txt"
echo %schuelername% aus der Klasse %klasse% meldete sich ab am %date% um %time% am PC %computername%. >> "\\Server\inis\log\logfile.log"
echo %schuelername% aus der Klasse %klasse% meldete sich ab am %date% um %time% am PC %computername%. >> "\\Server\inis\pclog\%computername%\logfile.log"

del c:\user.txt
del c:\class.txt
rmdir /S /Q "C:\Dokumente und Einstellungen\%username%\desktop\Teilnehmerverzeichnisse"
if exist == "C:\Dokumente und Einstellungen\%username%\desktop\Tauschverzeichnis" rmdir /S /Q "C:\Dokumente und Einstellungen\%username%\desktop\Tauschverzeichnis"

rem --------------------------------------------------------------------------------------------------------------
set /p probleme="Gib hier ein, welche Probleme du mit dem Computer hattest:"
echo Es trat folgendes Problem am Computer %COmputername% bei %Schuelername%aus %klasse%auf:"%probleme%". >> \\Server\inis\probleme\p.txt
rem --------------------------------------------------------------------------------------------------------------------

if %schuelername% == schmwill goto copy
exit

:copy
del "C:\Dokumente und Einstellungen\%username%\desktop\p.lnk"
exit

Abmeldung Schüler:

@echo off
set file="c:\class.txt"
FOR /F "skip=2 tokens=1 delims=" %%i in ('find /N "KLASSE:" %file%') do (

call:auslesen %%i

pause
)

:auslesen
set "CLASS="
set /a offset=%1-1
FOR /F "tokens=1* delims=:" %%a in ('more +%offset% %file%') do if not defined KLASSE set KLASSE=%%b
rem ---------------------------------------------------------------------------------------------

set file="c:\user.txt"
FOR /F "skip=2 tokens=1 delims=" %%i in ('find /N "SCHUELERNAME:" %file%') do (

call:auslesen %%i

pause
)

:auslesen
set "USER="
set /a offset=%1-1
FOR /F "tokens=1* delims=:" %%a in ('more +%offset% %file%') do if not defined SCHUELERNAME set SCHUELERNAME=%%b
rem ---------------------------------------------------------------------------------------------
if exist == "h:\" net use h: /del /yes
rem ---------------------------------------------------------------------------------------------
echo %schuelername% aus der Klasse %klasse% meldete sich ab am %date% um %time% am PC %computername%. >> "\\server\inis\slog\%schuelername%_abmeldung_logfile.txt"
echo %schuelername% aus der Klasse %klasse% meldete sich ab am %date% um %time% am PC %computername%. >> "\\Server\inis\log\logfile.log"
echo %schuelername% aus der Klasse %klasse% meldete sich ab am %date% um %time% am PC %computername%. >> "\\Server\inis\pclog\%computername%\logfile.log"

del c:\user.txt
del c:\class.txt

if exist == "C:\Dokumente und Einstellungen\%username%\desktop\Tauschverzeichnis\*" rmdir /s /Q "C:\Dokumente und Einstellungen\%username%\desktop\Tauschverzeichnis\"

rem --------------------------------------------------------------------------------------------------------------
set /p probleme="Gib hier ein, welche Probleme du mit dem Computer hattest:"
echo Es trat folgendes Problem am Computer %COmputername% bei %Schuelername%aus %klasse%auf:"%probleme%". >> \\Server\inis\probleme\p.txt
rem --------------------------------------------------------------------------------------------------------------------

if %schuelername% == schmwill goto copy
exit

:copy
del "C:\Dokumente und Einstellungen\%username%\desktop\p.lnk"
exit

tauschverzeichnis Lehrer

@echo off
set file="c:\class.txt"
FOR /F "skip=2 tokens=1 delims=" %%i in ('find /N "KLASSE:" %file%') do (

call:auslesen %%i

pause
)

:auslesen
set "CLASS="
set /a offset=%1-1
FOR /F "tokens=1* delims=:" %%a in ('more +%offset% %file%') do if not defined KLASSE set KLASSE=%%b
rem ---------------------------------------------------------------------------------------------

if not exist == "C:\Dokumente und Einstellungen\%username%\desktop\Tauschverzeichnis" mkdir "C:\Dokumente und Einstellungen\%username%\desktop\Tauschverzeichnis"
xcopy "\\Server\netlogon\Tauschverzeichnisse" "C:\Dokumente und Einstellungen\%username%\desktop\Tauschverzeichnis" /E /C /Y

exit

Tauschverzeichnis Schueler: (um das es hauptsächlich ging)

@echo off
set file="c:\class.txt"
FOR /F "skip=2 tokens=1 delims=" %%i in ('find /N "KLASSE:"%file%') do (

call:auslesen %%i

pause
)

:auslesen
set "CLASS="
set /a offset=%1-1
FOR /F "tokens=1* delims=:" %%a in ('more +%offset% %file%') do if not defined KLASSE set KLASSE=%%b
rem ---------------------------------------------------------------------------------------------

if not exist == "C:\Dokumente und Einstellungen\%username%\desktop\Tauschverzeichnis" mkdir "C:\Dokumente und Einstellungen\%username%\desktop\Tauschverzeichnis"
xcopy "\\Server\netlogon\Tauschverzeichnisse\%klasse%.lnk" "C:\Dokumente und Einstellungen\%username%\desktop\Tauschverzeichnis\%klasse%.lnk" /E /C /Y
exit

Tauschordner_weg:

if exist == "C:\Dokumente und Einstellungen\%username%\desktop\Tauschverzeichnis\*" rmdir /S /Q "C:\Dokumente und Einstellungen\%username%\desktop\Tauschverzeichnis"

So und das ist alles. In der Tauschordner schueler sollte nur zur eigenen Klasse die verbindung kopiert werden.

Danke
Member: schregi82
schregi82 Mar 19, 2008 at 22:13:05 (UTC)
Goto Top
So und das ist alles. In der Tauschordner
schueler sollte nur zur eigenen Klasse die
verbindung kopiert werden.

Ich kenne deine Gedankengänge nicht - und die Satzstellung tut ihr übriges dazu.
Verbindung kopiert ? Was soll das heißen ..
Mitglied: 42687
42687 Mar 19, 2008 at 22:23:45 (UTC)
Goto Top
Du hast einen Ordner mit allen Klassen, im Ordner \\Server\netlogon\Tauschverzeichnis\%klasse% und dazu gibt es eine Verknüpfung oder von mir auch Verbindung betitelt, im Ordner \\Server\netlogon\Tauschverzeichnisse\%klasse%.lnk (link zu \\Server\netlogon\Tauschverzeichnis\%klasse%. nur durch das auslesen wird hinter die Variable Klasse noch eine Leerzeichen setzt was ich in den ordner nicht umsetzten kann. Danke.
bb
Member: schregi82
schregi82 Mar 19, 2008 at 22:57:59 (UTC)
Goto Top
nur durch das auslesen wird hinter die
Variable Klasse noch eine Leerzeichen setzt
was ich in den ordner nicht umsetzten kann.

Nicht mehr lange und wir schaffen einen Satz ohne irgendwelches Wirwar.

Ich würd mir mal die Werte in c:\class.txt ansehen, ob die das zusätzliche Leerzeichen enthalten, wenn nicht hast du irgendwo beim auslesen ein Leerzeichen zuviel. (bzw. laut deinem Script wird die Verknüpfung ja kopiert und nicht neu erstellt anhand von Varible %klasse%. Und tu mir einen Gefallen, halt das Script so einfach und kurz wie möglich, das ist ja mittlerweile ein Schmöker für ein paar einfache Funktionen.

if exist erfordert keine "=="
set locpath="C:\Dokumente und Einstellungen\" würde dir einiges an Zeilen sparen.

Wie mit eine Verknüpfung RICHTIG anlegt, steht ja bereits weiter oben, eine bestehende Verknüpfung zu kopieren ist zwar simpel aber nicht unbedingt sauber.
Mitglied: 42687
42687 Mar 20, 2008 at 17:22:32 (UTC)
Goto Top
So, ich danke. Ich werde versuchen nicht mehr so verwirrt zu schreiben. Eine Frage habe ich noch, geht es das dazwischen nicht immer angezeigt wird "Der Befehl wurde erfolgreich ausgeführt." ? Kann man das wegschalten, sodass nur noch die Aufforderung zur Namens und klasseneigaben kommt? Danke. Das wars dann erst ma. Wenn ich noch fragen habe melde ich mich.

bb

Danke
ganz dolle