Kleiner Netzwerkchat mittels BATCH
Hallo, Heute möchte ich euch zeigen, wie man einen Kleinen Chat auf BATCH-Basis schreibt.
Ein bisschen Erfahrung ist hilfreich...
Also.
Zuerst braucht man einen Netzwerkordner, auf dem alle user Lese & Schreiberechte haben (bei mir Y:\docs)
Und wir legen folgende Ordnerstruktur an:
als nächstes nehmen wir den MS-Editor (Start->Ausführen->NOTEPAD)
Hier schreiben wir unseren Start-Dialog hinein...
Y:\docs\start.bat
Zur erklärung...
Im 1ten Abschnitt wird mittels SET /P ermittelt, wie man den Chat nutzen will...
Per Login oder per gastzugang (ich habe keinen Gastzugang geschrieben.)
Bei Login springt er zum login-Anker...
im 2ten Abschnitt (login-anker) wird nach einem Usernamen gefragt.
Anschliesend wird im Verzeichnis Y:\docs\datas\sources\users\ gesucht, ob eine Batchdatei mit dem namen des Users vorhanden ist.
Wenn ja, wird diese Aufgerufen
Wenn nicht,springt es zum Fail1-anker...
Beim Guest-Anker steht,dass der Gastzugang deaktiviert wurde (weil ich ihn nicht mitgeschrieben habe)
anschliesend springt er wieder nach oben zum 1ten Abschnitt
Im letzet Teil (fail1-anker) wird geschrieben, dass eine ungültige eingabe gemacht wurde.
und es wird wieder zum Start gesprungen...
Als nächstes die datei, die für den adminlogin zuständig ist:
Y:\docs\datas\sources\users\administrator.bat
Im 1ten block wird nach dem Adminpasswort gefragt
Anschliesend wird gesucht, ob im Ordner Y:\docs\datas\wordspass (unser Passwortordner) eine datei namens amdin.pwd vorhanden ist (diese legt ihr zunächst an. einfach eine leere .txt datei in die admin.pwd datei umbenennen.
Ist das Adminpasswort z.B. 123456, wird noch zusätzlich eine 123456.pwd datei benötigt...
Wenn die Datei vorhanden ist, sucht der Batch eine :pwd datei, die mit dem Angegebenen passwort übereinstimmt.
Wenn eine solche datei (in meinem falle 123456.pwd) vorhanden ist, wir auf Y:\docs\datas\sources\admin.bat weiterverlinkt...
Ich weiß, dass diese Einlogmethode unnötig komliziert ist, aber das ist nur die für das Adminkonto...
im letzten block (fail1) kommt wieder die gleiche Fehlermeldung wie in der 1ten Datei...
Jetz kommt die Raum-Auswahl....
Y:\docs\datas\rooms.bat
Hier muss man den Namen des Raumes (ohne .BAT) eingeben.
z.B. Allgemeines
Anschliessend wird man auf den Raum verlinkt...
Hier Erstellen wir nun die Chat-Räume...
1. Raum = Allgemeines
protokoll: Y.\docs\datas\sources\log\allgemein.room
Y.\docs\datas\sources\rooms\allgemeines.bat
Im ertsten teil wird im protokoll gespeichert, dass der User den Chat betreten hat.
%User% wurde im Start-Dialog schon definiert
Anschliessend soll man einen Text eingeben.....
Dieser Text wird in dem Protokoll gespeichert.
dann wird der Inhalt des Protokolls angezeigt.
wenn man jetzt enter drückt, jommt man wieder zur eingabe
2. Raum = Flirtbox
protokoll: Y.\docs\datas\sources\log\flirt.room
Y.\docs\datas\sources\rooms\flirtbox.bat
Selbiges als oben, nur andere Protokoll-Datei...
3. Raum = Langeweile
protokoll: Y.\docs\datas\sources\log\boring.room
Y.\docs\datas\sources\rooms\flangeweile.bat
Selbiges als oben, nur andere Protokoll-Datei...
Mit dem Admin-Profil können wir jedoch nicht in den Räumen schreiben. Also legen wir uns ein Profil (meines heißt cewie) an.
Y:\docs\datas\sources\Users\cewie.bat
Ihr müsst nur noch eine datei mit eurem passwort (z.B. lool.pwd für das passwort lool) in dem Verzeichnis Y:\docs\datas\wordspass\cewie anlegen
z.B. Y:\docs\datas\wordspass\cewie\lool.pwd
Diese lasst ihr wieder leer...
jetz ist das Profil fertig...
Als nächstes bauen wir das Admin-Interface
Y:\docs\datas\sources\admin.bat
Im ersten block, wird gefragt, was man tun möchte.
Protokolle leeren: Protokolle sind die Chat-Raum-Speicherorte... hier werden alle Messages gespeichert...
User Verwalten: User entfernen hinzufügen, sperren, entsperren, und die passwörter ändern...
protocoll menü:
Y:\docs\datas\sources\protocolls.bat
Kurz gesagt, ganz oben überprüft er, OB die Protokolle vorhanden sind...
Wenn sie vorhanden sind löscht er sie.
Keine angst, das Script erstellt beim Schrieben die protokolle automatisch...
User Verwaltung
Y:\docs\datas\sources\users.bat
Wir edit eingegeben, ruft er die datei Y:\docs\datas\sources\edituser.bat auf
Wird newuser eingegeben, ruft er die datei Y:\docs\datas\sources\newuser.bat auf
wird exit eingegeben, beendet er den chat...
Es ist mühsam, jeden user einzeln anzulegen.
Deshalb erledigt das ein Script in der Adminoberfläche
Neuen User anlegen
Y:\docs\datas\sources\newuser.bat
Hier muss man einen Neuen username und ein PW eingeben.
Anschliesend erstellt er ein Profil mit dem neuen Username und PW indem er sich am profil Cewie orientiert...
Der neue User kann sich danach mit dem neuen Namen und PW einloggen.
Mit diesem Amdin-Script kann man die Daten der User einfach ändern, ohne sich manuell darum zu kümmern...
User Bearbeiten
Y:\docs\datas\sources\edituser.bat
Hier wird nun gefragt, welche Änderungen vorgenommen werden sollen, und dann das Entsprechende Script aufegrufen...
Wenn ein User seinen Usernamen ändern will, geshcieht dies Heirmit voll automatisch
User Umbenennen
Y:\docs\datas\sources\rename.bat
@ echo off
:start
cls
echo.
echo CHAT-SYSTEM V1.25 by: Cewie
Echo user verwaltungs System
echo.
echo.
echo User Bearbeiten
Echo User umbenennen
Echo.
set /P oldname= Gib den Usernamen an:_
echo.
set /P newname= Gib den neuen Namen an:_
echo.
echo.
ren Y:\docs\datas\sources\Users\%oldname%.bat %newname%.bat
rmdir /s /q Y:\docs\datas\wordspass\%oldname%
mkdir Y:\docs\datas\wordspass\%newname%
copy Y:\docs\datas\wordspass\cewie\cewierulez.pwd Y:\docs\datas\wordspass\%newname%\cewierulez.pwd
ren Y:\docs\datas\wordspass\%newname%\cewierulez.pwd %newname%.pwd
Echo.
Echo.
Echo User erfolgreich umbenannt...
pause > nul
call user.bat
Hier wird der User vollautomatisch umbenannt.
passwort Ändern
Y:\docs\datas\sources\pwchange.bat
Automatisches Passwort Änderungs Script. Das Alte Passwort wird aber benötigt...
User Sperren
Y:\docs\datas\sources\block.bat
Hier wird das LoginScript für den Einegegebenen User in den Ordner Y:\docs\datas\sources\blocked\ verschoben.
Als ersatz dient ein Script, welches Beschreibt, dass der User geblockt wurde.
Der Code dafür:
Y:\docs\datas\sources\blocked.bat
User Entsperren
Hiermit wird der User wieder Entsperrt:
Y:\docs\datas\sources\unblock.bat
User Löschen
Hier wird der User entgültig gelöscht...
Y:\docs\datas\sources\delete.bat
So, ich hoffe ich konnte euch einen Kleinen einblick geben, was mit Batch alles möglich ist.
Für Kommentare, Feedback, fehlerberichte und Verbesserungen bin ich jederzeit dankbar
Grüße Cewie
Ein bisschen Erfahrung ist hilfreich...
Also.
Zuerst braucht man einen Netzwerkordner, auf dem alle user Lese & Schreiberechte haben (bei mir Y:\docs)
Und wir legen folgende Ordnerstruktur an:
als nächstes nehmen wir den MS-Editor (Start->Ausführen->NOTEPAD)
Hier schreiben wir unseren Start-Dialog hinein...
Y:\docs\start.bat
@ echo off
:start
cls
echo.
echo CHAT-SYSTEM V1.25 by: Cewie
echo.
echo.
echo benutzer login(1) oder Gastzugang(2) oder exit (e)?
set /P X= 1/2/e?_
if %X% == 1 goto :login
if %X% == 2 goto :guest
if %X% == e exit
goto :fail1
:login
cls
echo.
echo CHAT-SYSTEM V1.25 by: Cewie
echo.
echo.
Echo Anmeldung
Echo.
set /P user= Username:
Echo.
if not exist Y:\docs\datas\sources\users\%user%.bat goto :fail1
call Y:\docs\datas\sources\users\%user%.bat
:guest
echo.
echo CHAT-SYSTEM V1.25 by: Cewie
echo.
echo.
Echo Error
set errornum= 002
set descriptioneng= guest deactivated by Admin...
set solutioneng= please log in...
set descriptionde= Gast deaktiviert durch Admin...
set solutionde= bitte loggen Sie sich ein...
Echo.
Echo ErrorNumber: %errornum%
echo.
echo %descriptioneng%
Echo %solutioneng%
Echo.
Echo %descriptionde%
Echo %solutionde%
Echo.
Echo PRESS ENTER...
pause > nul
goto :start
:fail1
cls
echo.
echo CHAT-SYSTEM V1.25 by: Cewie
echo.
echo.
Echo Error
set errornum= 001
set descriptioneng= Unrecognized input...
set solutioneng= please retry your input...
set descriptionde= Unerkannter Eintrag...
set solutionde= bitte wiederholen Sie Ihren Eintrag...
Echo.
Echo ErrorNumber: %errornum%
echo.
echo %descriptioneng%
Echo %solutioneng%
Echo.
Echo %descriptionde%
Echo %solutionde%
Echo.
Echo PRESS ENTER...
pause > nul
goto :start
Zur erklärung...
Im 1ten Abschnitt wird mittels SET /P ermittelt, wie man den Chat nutzen will...
Per Login oder per gastzugang (ich habe keinen Gastzugang geschrieben.)
Bei Login springt er zum login-Anker...
im 2ten Abschnitt (login-anker) wird nach einem Usernamen gefragt.
Anschliesend wird im Verzeichnis Y:\docs\datas\sources\users\ gesucht, ob eine Batchdatei mit dem namen des Users vorhanden ist.
Wenn ja, wird diese Aufgerufen
Wenn nicht,springt es zum Fail1-anker...
Beim Guest-Anker steht,dass der Gastzugang deaktiviert wurde (weil ich ihn nicht mitgeschrieben habe)
anschliesend springt er wieder nach oben zum 1ten Abschnitt
Im letzet Teil (fail1-anker) wird geschrieben, dass eine ungültige eingabe gemacht wurde.
und es wird wieder zum Start gesprungen...
Als nächstes die datei, die für den adminlogin zuständig ist:
Y:\docs\datas\sources\users\administrator.bat
@ echo off
:start
cls
echo.
echo CHAT-SYSTEM V1.25 by: Cewie
Echo Administrative Login...
echo.
echo.
echo Bitte gib das Passwort für den Adminzugang ein?
set /P X= Password?_
if exist Y:\docs\wordspass\admin.pwd goto :ok
goto :fail1
:ok
Echo.
Echo.
Echo Das einegeben passwort %X%...
pause > nul
if exist Y:\docs\wordspass\%X%.pwd goto :ok2
goto fail1
:ok2
cls
echo.
echo CHAT-SYSTEM V1.25 by: Cewie
Echo Administrative Login...
echo.
echo.
echo Login erfolgreich...
Echo Sie werden weitergeleitet...
ping /N 3 localhost > nul
call Y:\docs\datas\sources\admin.bat
:fail1
cls
echo.
echo CHAT-SYSTEM V1.25 by: Cewie
echo.
echo.
Echo Error
set errornum= 003
set descriptioneng= Password fail...
set solutioneng= please retry your input...
set descriptionde= Falsches Passwort...
set solutionde= bitte wiederholen Sie Ihren Eintrag...
Echo.
Echo ErrorNumber: %errornum%
echo.
echo %descriptioneng%
Echo %solutioneng%
Echo.
Echo %descriptionde%
Echo %solutionde%
Echo.
Echo PRESS ENTER...
pause > nul
goto :start
Im 1ten block wird nach dem Adminpasswort gefragt
Anschliesend wird gesucht, ob im Ordner Y:\docs\datas\wordspass (unser Passwortordner) eine datei namens amdin.pwd vorhanden ist (diese legt ihr zunächst an. einfach eine leere .txt datei in die admin.pwd datei umbenennen.
Ist das Adminpasswort z.B. 123456, wird noch zusätzlich eine 123456.pwd datei benötigt...
Wenn die Datei vorhanden ist, sucht der Batch eine :pwd datei, die mit dem Angegebenen passwort übereinstimmt.
Wenn eine solche datei (in meinem falle 123456.pwd) vorhanden ist, wir auf Y:\docs\datas\sources\admin.bat weiterverlinkt...
Ich weiß, dass diese Einlogmethode unnötig komliziert ist, aber das ist nur die für das Adminkonto...
im letzten block (fail1) kommt wieder die gleiche Fehlermeldung wie in der 1ten Datei...
Jetz kommt die Raum-Auswahl....
Y:\docs\datas\rooms.bat
@ echo off
:start
cls
echo.
echo CHAT-SYSTEM V1.25 by: Cewie
echo.
echo.
echo Wilkommen zurueck, %user%...
Echo.
Echo.
Echo Zur Zeit sind folgende Raume freigegeben:
Echo.
dir Y:\docs\datas\sources\rooms /B
Echo.
Echo.
echo Bitte gib den Namen deiens Raumes ein (ohne .bat)
echo.
set /P room= Namen des Raumes (ohne .bat):_
if not exist Y:\docs\datas\sources\rooms\%room%.bat goto :fail1
call Y:\docs\datas\sources\rooms\%room%.bat
:fail1
cls
echo.
echo CHAT-SYSTEM V1.25 by: Cewie
echo.
echo.
Echo Error
set errornum= 004
set descriptioneng= Room Fail...
set solutioneng= please retry your input...
set descriptionde= Raum Fehler...
set solutionde= bitte wiederholen Sie Ihren Eintrag...
Echo.
Echo ErrorNumber: %errornum%
echo.
echo %descriptioneng%
Echo %solutioneng%
Echo.
Echo %descriptionde%
Echo %solutionde%
Echo.
Echo PRESS ENTER...
pause > nul
goto :start
Hier muss man den Namen des Raumes (ohne .BAT) eingeben.
z.B. Allgemeines
Anschliessend wird man auf den Raum verlinkt...
Hier Erstellen wir nun die Chat-Räume...
1. Raum = Allgemeines
protokoll: Y.\docs\datas\sources\log\allgemein.room
Y.\docs\datas\sources\rooms\allgemeines.bat
@ echo off
:start
cls
echo.
echo CHAT-SYSTEM V1.25 by: Cewie
echo.
echo.
echo User %user% betrat den Chat...
echo User %user% betrat den Chat... >> Y:\docs\datas\sources\log\allgemein.room
pause > nul
Echo.
:input
cls
echo.
echo CHAT-SYSTEM V1.25 by: Cewie
echo.
echo.
Echo Gib deine Nachricht ein...
set /P input= Message:_
Echo %user%, um %time% - %input% >> Y:\docs\datas\sources\log\allgemein.room
more < Y:\docs\datas\sources\log\allgemein.room
Echo press ENTER
pause > nul
goto :input
Im ertsten teil wird im protokoll gespeichert, dass der User den Chat betreten hat.
%User% wurde im Start-Dialog schon definiert
Anschliessend soll man einen Text eingeben.....
Dieser Text wird in dem Protokoll gespeichert.
dann wird der Inhalt des Protokolls angezeigt.
wenn man jetzt enter drückt, jommt man wieder zur eingabe
2. Raum = Flirtbox
protokoll: Y.\docs\datas\sources\log\flirt.room
Y.\docs\datas\sources\rooms\flirtbox.bat
@ echo off
:start
cls
echo.
echo CHAT-SYSTEM V1.25 by: Cewie
echo.
echo.
echo User %user% betrat den Chat...
echo User %user% betrat den Chat... >> Y:\docs\datas\sources\log\flirt.room
pause > nul
Echo.
:input
cls
echo.
echo.
echo CHAT-SYSTEM V1.25 by: Cewie
echo.
echo.
Echo Gib deine Nachricht ein...
set /P input= Message:_
Echo %user%, um %time% - %input% >> Y:\docs\datas\sources\log\flirt.room
more < Y:\docs\datas\sources\log\flirt.room
Echo press ENTER
pause > nul
goto :input
Selbiges als oben, nur andere Protokoll-Datei...
3. Raum = Langeweile
protokoll: Y.\docs\datas\sources\log\boring.room
Y.\docs\datas\sources\rooms\flangeweile.bat
@ echo off
:start
cls
echo.echo CHAT-SYSTEM V1.25 by: Cewie
echo.
echo.
echo User %user% betrat den Chat...
echo User %user% betrat den Chat... >> Y:\docs\datas\sources\log\boring.room
pause > nul
Echo.
:input
cls
echo.echo CHAT-SYSTEM V1.25 by: Cewie
echo.
echo.
Echo Gib deine Nachricht ein...
set /P input= Message:_
Echo %user%, um %time% - %input% >> Y:\docs\datas\sources\log\boring.room
more < Y:\docs\datas\sources\log\boring.room
Echo press ENTER
pause > nul
goto :input
Mit dem Admin-Profil können wir jedoch nicht in den Räumen schreiben. Also legen wir uns ein Profil (meines heißt cewie) an.
Y:\docs\datas\sources\Users\cewie.bat
@ echo off
:start
cls
echo.echo CHAT-SYSTEM V1.25 by: Cewie
echo.
echo.
echo Bitte gib das Passwort für %user% ein?
set /P X= Password?_
if exist Y:\docs\datas\wordspass\%user%\%X%.pwd goto :ok
goto :fail1
:ok
call Y:\docs\datas\rooms.bat
:fail1
cls
echo.echo CHAT-SYSTEM V1.25 by: Cewie
echo.
echo.
Echo Error
set errornum= 003
set descriptioneng= Password fail...
set solutioneng= please retry your input...
set descriptionde= Falsches Passwort...
set solutionde= bitte wiederholen Sie Ihren Eintrag...
Echo.
Echo ErrorNumber: %errornum%
echo.
echo %descriptioneng%
Echo %solutioneng%
Echo.
Echo %descriptionde%
Echo %solutionde%
Echo.
Echo PRESS ENTER...
pause > nul
goto :start
Ihr müsst nur noch eine datei mit eurem passwort (z.B. lool.pwd für das passwort lool) in dem Verzeichnis Y:\docs\datas\wordspass\cewie anlegen
z.B. Y:\docs\datas\wordspass\cewie\lool.pwd
Diese lasst ihr wieder leer...
jetz ist das Profil fertig...
Als nächstes bauen wir das Admin-Interface
Y:\docs\datas\sources\admin.bat
@ echo off
:start
cls
echo.
echo CHAT-SYSTEM V1.25 by: Cewie
echo.
echo.
echo Wilkommen zurueck, Administrator
Echo.
Echo.
Echo [1] = Protokolle leeren
Echo [2] = User verwaltung
Echo [e] = Exit
Echo.
:menue1
Set /P x= Deine Wahl:_
if %x% == 1 goto protocolls
if %x% == 2 goto users
if %x% == e exit
goto :menue1
:protocolls
call Y:\docs\datas\sources\protocolls.bat
exit
:users
call Y:\docs\datas\sources\users.bat
exit
Im ersten block, wird gefragt, was man tun möchte.
Protokolle leeren: Protokolle sind die Chat-Raum-Speicherorte... hier werden alle Messages gespeichert...
User Verwalten: User entfernen hinzufügen, sperren, entsperren, und die passwörter ändern...
protocoll menü:
Y:\docs\datas\sources\protocolls.bat
@ echo off
:start
cls
echo.
echo CHAT-SYSTEM V1.25 by: Cewie
echo.
echo.
echo Wilkommen zurueck, Administrator
Echo.
Echo.
Echo Protokolle leeren
Echo.
Echo.
Pause > nul
{{comment_single_line_double_colon{{comment_single_line_double_colon{{comment_single_line_double_colon:3}}}}}}
if exist Y:\docs\datas\sources\log\allgemein.room goto {{comment_single_line_double_colon{{comment_single_line_double_colon:3}}}}
if exist Y:\docs\datas\sources\log\flirt.room goto {{comment_single_line_double_colon:3}}
if exist Y:\docs\datas\sources\log\boring.room goto :3
goto :ok
{{comment_single_line_double_colon{{comment_single_line_double_colon:3}}}}
del Y:\docs\datas\sources\log\allgemein.room
goto {{comment_single_line_double_colon{{comment_single_line_double_colon{{comment_single_line_double_colon:3}}}}}}
{{comment_single_line_double_colon:3}}
del Y:\docs\datas\sources\log\flirt.room
goto {{comment_single_line_double_colon{{comment_single_line_double_colon{{comment_single_line_double_colon:3}}}}}}
:3
del Y:\docs\datas\sources\log\boring.room
goto {{comment_single_line_double_colon{{comment_single_line_double_colon{{comment_single_line_double_colon:3}}}}}}
:ok
cls
echo.
echo CHAT-SYSTEM V1.25 by: Cewie
Echo Protokolle Leeren
echo.
echo.
echo Wilkommen zurueck, Administrator
Echo.
Echo.
Echo Protokolle wurden geleert...
Echo.
Echo.
Pause > nul
call Y:\drivers\new\admin.cmd
Kurz gesagt, ganz oben überprüft er, OB die Protokolle vorhanden sind...
Wenn sie vorhanden sind löscht er sie.
Keine angst, das Script erstellt beim Schrieben die protokolle automatisch...
User Verwaltung
Y:\docs\datas\sources\users.bat
@ echo off
:start
cls
echo.
echo CHAT-SYSTEM V1.25 by: Cewie
Echo user verwaltungs System
echo.
echo.
echo Wilkommen zurueck, Administrator
Echo.
Echo.
Echo bitte gib user verwalten [edit], Neuen User anlegen [newuser] oder exit ein...
set /P X= edit / newuser / exit :_
if %X% == newuser goto :newuser
if %X% == exit goto :exit
if %X% == edit goto :edit
:edit
call Y:\docs\datas\sources\edituser.bat
pause
:newuser
call Y:\docs\datas\sources\newuser.bat
:exit
exit
Wir edit eingegeben, ruft er die datei Y:\docs\datas\sources\edituser.bat auf
Wird newuser eingegeben, ruft er die datei Y:\docs\datas\sources\newuser.bat auf
wird exit eingegeben, beendet er den chat...
Es ist mühsam, jeden user einzeln anzulegen.
Deshalb erledigt das ein Script in der Adminoberfläche
Neuen User anlegen
Y:\docs\datas\sources\newuser.bat
@ echo off
:start
cls
echo.
echo CHAT-SYSTEM V1.25 by: Cewie
Echo user verwaltungs System
echo.
echo.
echo neuen User anlegen
Echo.
Echo.
Echo Bitte gib den Namen des neuen users an...
set /P nname= Name:_
Echo.
Echo Bitte gib das Passwort des neuen Users an...
set /P npass= Passwort:_
Echo.
Echo.
copy Y:\docs\datas\sources\Users\cewie.bat Y:\docs\datas\sources\Users\%nname%.bat
md Y:\docs\datas\wordspass\%nname%
copy Y:\docs\datas\wordspass\Cewie\lool.pwd Y:\docs\datas\wordspass\%nname%\%npass%.pwd
Echo.
Echo User erfolgreich angelegt - User %nname% mit dem Passwort %npass%...
pause > nul
Echo.
goto :start
Hier muss man einen Neuen username und ein PW eingeben.
Anschliesend erstellt er ein Profil mit dem neuen Username und PW indem er sich am profil Cewie orientiert...
Der neue User kann sich danach mit dem neuen Namen und PW einloggen.
Mit diesem Amdin-Script kann man die Daten der User einfach ändern, ohne sich manuell darum zu kümmern...
User Bearbeiten
Y:\docs\datas\sources\edituser.bat
@ echo off
:start
cls
echo.
echo CHAT-SYSTEM V1.25 by: Cewie
Echo user verwaltungs System
echo.
echo.
echo User Bearbeiten
Echo.
Echo [1] = User umbenennen
Echo [2] = Passwort aendern
Echo [3] = User Blocken
Echo [4] = User freigeben
Echo [5] = User loeschen
Echo.
Echo.
Set /P x= Funktion:_
if %X% == 1 goto :rename
if %X% == 2 goto :pwchange
if %X% == 3 goto :block
if %X% == 4 goto :unblock
if %X% == 5 goto :delete
goto :start
:rename
call Y:\docs\datas\sources\rename.bat
:pwchange
call Y:\docs\datas\sources\pwchange.bat
:block
call Y:\docs\datas\sources\block.bat
:unblock
call Y:\docs\datas\sources\unblock.bat
:delete
call Y:\docs\datas\sources\delete.bat
Hier wird nun gefragt, welche Änderungen vorgenommen werden sollen, und dann das Entsprechende Script aufegrufen...
Wenn ein User seinen Usernamen ändern will, geshcieht dies Heirmit voll automatisch
User Umbenennen
Y:\docs\datas\sources\rename.bat
@ echo off
:start
cls
echo.
echo CHAT-SYSTEM V1.25 by: Cewie
Echo user verwaltungs System
echo.
echo.
echo User Bearbeiten
Echo User umbenennen
Echo.
set /P oldname= Gib den Usernamen an:_
echo.
set /P newname= Gib den neuen Namen an:_
echo.
echo.
ren Y:\docs\datas\sources\Users\%oldname%.bat %newname%.bat
rmdir /s /q Y:\docs\datas\wordspass\%oldname%
mkdir Y:\docs\datas\wordspass\%newname%
copy Y:\docs\datas\wordspass\cewie\cewierulez.pwd Y:\docs\datas\wordspass\%newname%\cewierulez.pwd
ren Y:\docs\datas\wordspass\%newname%\cewierulez.pwd %newname%.pwd
Echo.
Echo.
Echo User erfolgreich umbenannt...
pause > nul
call user.bat
Hier wird der User vollautomatisch umbenannt.
passwort Ändern
Y:\docs\datas\sources\pwchange.bat
@ echo off
:start
cls
echo.
echo CHAT-SYSTEM V1.25 by: Cewie
Echo user verwaltungs System
echo.
echo.
echo User Bearbeiten
Echo Passwort aendern
Echo.
Echo.
set /P username= Bitte gib den Usernamen an:_
echo.
set /p oldpw= Altes Passwort:_
Echo.
Set /P newpw= Neues Passwort:_
Echo.
Echo.
goto :change
:change
rename Y:\docs\datas\wordspass\%username%\%oldpw%.pwd %newpw%.pwd
Echo.
Echo Passwort wurde geaendert von %oldpw% in %newpw%
echo.
pause > nul
call users.bat
Automatisches Passwort Änderungs Script. Das Alte Passwort wird aber benötigt...
User Sperren
Y:\docs\datas\sources\block.bat
@ echo off
:start
cls
echo.
echo CHAT-SYSTEM V1.25 by: Cewie
Echo user verwaltungs System
echo.
echo.
echo User Bearbeiten
Echo User Sperren
Echo.
Echo.
set /P username= Name des Users:_
Echo.
Echo Willst du %usename% wirklich sperren?
Echo.
set /P ok= y/n:_
if %ok% == y goto :ok
if %ok% == n goto :no
:ok
move Y:\docs\datas\sources\Users\%username%.bat Y:\docs\datas\sources\blocked\%username%.bat
copy Y:\docs\datas\sources\blocked.bat Y:\docs\datas\sources\Users\%username%.bat
goto :end
:no
Echo.
Echo Puuuuhhh...
Echo noch mal anders ueberlegt, he?
Echo.
pause > nul
exit
:end
Echo.
Echo Der user %username% wurde erfolgreich gesperrt...
Echo.
pause > nul
exit
Hier wird das LoginScript für den Einegegebenen User in den Ordner Y:\docs\datas\sources\blocked\ verschoben.
Als ersatz dient ein Script, welches Beschreibt, dass der User geblockt wurde.
Der Code dafür:
Y:\docs\datas\sources\blocked.bat
@ echo off
:start
cls
echo.echo CHAT-SYSTEM V1.25 by: Cewie
echo.
echo.
echo.
Echo Dein User wurde gesperrt. Wende dich bitte an den Administrator...
Echo.
pause > nul
exit
User Entsperren
Hiermit wird der User wieder Entsperrt:
Y:\docs\datas\sources\unblock.bat
@ echo off
:start
cls
echo.echo CHAT-SYSTEM V1.25 by: Cewie
Echo user verwaltungs System
echo.
echo.
echo User Bearbeiten
Echo User entsperren
Echo.
Echo.
set /P username= Name des Users:_
Echo.
Echo Willst du %usename% wirklich entsperren?
Echo.
set /P ok= y/n:_
if %ok% == y goto :ok
if %ok% == n goto :no
:ok
del Y:\docs\datas\sources\Users\%username%.bat
move Y:\docs\datas\sources\blocked\%username%.bat Y:\docs\datas\sources\Users\%username%.bat
goto :end
:no
Echo.
Echo Boehser Junge...
Echo.
pause > nul
exit
:end
Echo.
Echo Der user %username% wurde erfolgreich entsperrt...
Echo.
pause > nul
exit
User Löschen
Hier wird der User entgültig gelöscht...
Y:\docs\datas\sources\delete.bat
@ echo off
:start
cls
echo.echo CHAT-SYSTEM V1.25 by: Cewie
Echo user verwaltungs System
echo.
echo.
echo User Bearbeiten
Echo User loeschen
Echo.
Echo.
set /P username= Name des Users:_
Echo.
Echo Willst du %username% wirklich dauerhaft loeschen?
Echo.
set /P ok= y/n:_
if %ok% == y goto :ok
if %ok% == n goto :no
:ok
rmdir /s /q Y:\docs\datas\wordspass\%username%
del /s /q Y:\docs\datas\sources\Users\%username%.bat
goto :end
:no
Echo.
Echo Warum denn ned???
Echo.
pause > nul
exit
:end
Echo.
Echo Der user %username% wurde erfolgreich geloescht...
Echo der hatte es verdient ;)
Echo.
pause > nul
exit
So, ich hoffe ich konnte euch einen Kleinen einblick geben, was mit Batch alles möglich ist.
Für Kommentare, Feedback, fehlerberichte und Verbesserungen bin ich jederzeit dankbar
Grüße Cewie
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 139405
Url: https://administrator.de/tutorial/kleiner-netzwerkchat-mittels-batch-139405.html
Ausgedruckt am: 24.12.2024 um 13:12 Uhr
58 Kommentare
Neuester Kommentar
Hi,
Ich habe den Chat mal nachgebaut und war sehr begeistert davon.
Ich habe ihn jetzt noch um einige Funktionen wie z. B. Gastbereich, IP-Bann, Nutzerseitige Passwort änderungen und Namensänderung, selbstständiges anlegen neuer User und kompliziertes Sperrsystem.
Folgen werden noch ein Flüstermodus und Privatnachrichten.
Bei Fragen kann man sich also auch gerne an mich wenden.
Doch natürlich hat Cewie ein großes Lob verdient, er hat die klasse vorarbeit geleistet.
Gruß Bankaifan
Ich habe den Chat mal nachgebaut und war sehr begeistert davon.
Ich habe ihn jetzt noch um einige Funktionen wie z. B. Gastbereich, IP-Bann, Nutzerseitige Passwort änderungen und Namensänderung, selbstständiges anlegen neuer User und kompliziertes Sperrsystem.
Folgen werden noch ein Flüstermodus und Privatnachrichten.
Bei Fragen kann man sich also auch gerne an mich wenden.
Doch natürlich hat Cewie ein großes Lob verdient, er hat die klasse vorarbeit geleistet.
Gruß Bankaifan
Japp...aber ich hab es so gemacht, dass man sich als Gast einloggen kann und dann kann man entweder als Gast in nen chat gehen oder nen eigenen User anlegen.
Und das Sperrsystem hab ich halt noch weng ausgebaut
Dann hab ich auch noch gemacht dass man als Admin chatten kann und sich direkt in das Admin-Interface einloggen kann
Aber wirklich klasse gemacht von dir
Und das Sperrsystem hab ich halt noch weng ausgebaut
Dann hab ich auch noch gemacht dass man als Admin chatten kann und sich direkt in das Admin-Interface einloggen kann
Aber wirklich klasse gemacht von dir
Hallo,
Respekt... du musst Zeit haben...
Schonmal an eine grafische Ausarbeitung mit z.B. wbat gedacht? http://home.mnet-online.de/horst.muc/uid.htm
Gruß
Peter
Respekt... du musst Zeit haben...
Schonmal an eine grafische Ausarbeitung mit z.B. wbat gedacht? http://home.mnet-online.de/horst.muc/uid.htm
Gruß
Peter
Moin cewiemaster,
Aber ich weiss nicht, ob Batches sonderlich tolerant sind oder bei Win7 evtl Fuzzy-Logik oder eine SoundEx()-Funktionalität mitbringen.
Wenn nicht, dann haut er zumindest dort ins Mett.
Ansonsten: Zu meiner Zeit musste jemand, der eine so detaillierte Fehlermeldung abgibt wie " Hier steckt iwo der Wurm Drinnen."
abends immer unsere Kaffeepötte sandstrahlen.
Gehts ein bisschen konkreter?
Grüße
Biber
Hier steckt iwo der Wurm Drinnen.
Wer den fehler findet, bitte posten.
Der erste bio-optical scan ergibt:Wer den fehler findet, bitte posten.
- in Zeile 55 wird Anlauf genommen für den Sprung mit "goto fail1"
- in Zeile 173 lauert auch eine Sprungmarke, die irgendwie ähnlich heißt (":fail").
Aber ich weiss nicht, ob Batches sonderlich tolerant sind oder bei Win7 evtl Fuzzy-Logik oder eine SoundEx()-Funktionalität mitbringen.
Wenn nicht, dann haut er zumindest dort ins Mett.
Ansonsten: Zu meiner Zeit musste jemand, der eine so detaillierte Fehlermeldung abgibt wie " Hier steckt iwo der Wurm Drinnen."
abends immer unsere Kaffeepötte sandstrahlen.
Gehts ein bisschen konkreter?
Grüße
Biber
Hier mal ne kleine Übersicht was ich bei mir noch abgeändert habe:
-Gastuser
-Eigenständiger Namenswechsel möglich (User)
-Eigenständiger Passwortwechsel möglich (User)
-Eigenständiges erstellen eines eigenen Users möglich(Nur ein User je ID)
-Zuletzt besuchter Raum kann aufgerufen werden
-Blocken von PC-Name und ID
-Entsprechend angepasstes entsperren
-Auflisten aller verfügbaren User(Admin)
-Mitloggen der Programmaufrufe
-Logoff und Refreshfunktion in den Chaträumen
-Angepasste Menüs für Admin und User
-Admin kann im Chat schreiben und sich direkt ins Adminmenü einloggen
SoHoffe ich habe nichts vergessen
Wenn du davon vllt den code haben willst melde dich^^
-Gastuser
-Eigenständiger Namenswechsel möglich (User)
-Eigenständiger Passwortwechsel möglich (User)
-Eigenständiges erstellen eines eigenen Users möglich(Nur ein User je ID)
-Zuletzt besuchter Raum kann aufgerufen werden
-Blocken von PC-Name und ID
-Entsprechend angepasstes entsperren
-Auflisten aller verfügbaren User(Admin)
-Mitloggen der Programmaufrufe
-Logoff und Refreshfunktion in den Chaträumen
-Angepasste Menüs für Admin und User
-Admin kann im Chat schreiben und sich direkt ins Adminmenü einloggen
SoHoffe ich habe nichts vergessen
Wenn du davon vllt den code haben willst melde dich^^
Ich hab in den Namen, den man beim Betreten eines Raumes eingibt in eine globale Variable gespeichert und diese dann bei "last" verwendet.
Hab des nur gemacht weil es mich genervt hat jedesmal den langen Raumnamen einzugeben.
Ich bin jetzt daheim, hab den Code aber auf der Arbeit, kann ihn dir dnan gerne noch reinstellen.
Hab des nur gemacht weil es mich genervt hat jedesmal den langen Raumnamen einzugeben.
Ich bin jetzt daheim, hab den Code aber auf der Arbeit, kann ihn dir dnan gerne noch reinstellen.
Ich brauch mal eure Hilfe...ich möchte eine Funktion machen, dass das Passwort temporär gespeichert und so automatisch eingeloggt werden kann:
Bisher sieht der Code so aus:
Das Problem ist, dass er immer bei der Prüfung auf SPPW oder SPUSER abbricht...ich vermute mal, weil ich sie nicht vorinitialisiere...aber wenn ich sie am anfach auf "NULL" setzten würde würde er mir auch das temporäre pw löschen...
was wäre eure Idee hierzu?
vllt soetwas wie
Bisher sieht der Code so aus:
@echo off
set MyLW=%CD:~0,39%
set X=
:start
if exist %MyLW%\docs\datas\sources\blocked\PC.txt (
for /f "delims=" %%i in (%MyLW%\docs\datas\sources\blocked\PC.txt) do findstr /i /b /C:%computername%
%MyLW%\docs\datas\sources\blocked\PC.txt> nul && call %MyLW%\docs\datas\sources\blocked.bat
)
if exist %MyLW%\docs\datas\sources\blocked\Users.txt (
for /f "delims=" %%c in (%MyLW%\docs\datas\sources\blocked\Users.txt) do findstr /i /b /C:%username%
%MyLW%\docs\datas\sources\blocked\Users.txt> nul && call %MyLW%\docs\datas\sources\blocked.bat
)
cls
echo.
echo ~Chat~
echo.
echo.
if %user% == %spuser% (
set X= %sppw%
goto :pruefe
:manuel
echo Bitte gib das Password für %user% ein.
set /P X= Password?
:pruefe
if exist %MyLW%\docs\datas\wordspass\%user%\%X%.pwd goto :ok
goto :fail1
:ok
echo User : %username% >> %MyLW%\docs\datas\sources\log\User.txt
echo Domain : %userdomain% >> %MyLW%\docs\datas\sources\log\User.txt
echo Datum : %Date% >> %MyLW%\docs\datas\sources\log\User.txt
echo Uhrzeit : %time% >> %MyLW%\docs\datas\sources\log\User.txt
echo PC : %computername% >> %MyLW%\docs\datas\sources\log\User.txt
echo Betriebssys.: %bsv% >> %MyLW%\docs\datas\sources\log\User.txt
echo Server : %logonserver% >> %MyLW%\docs\datas\sources\log\User.txt
echo Prozessoren : %number_of_processors% >> %MyLW%\docs\datas\sources\log\User.txt
echo Merkmale : %processor_identifier% >> %MyLW%\docs\datas\sources\log\User.txt
FOR /F "skip=1 tokens=2 delims=:" %%i in ('ipconfig^|findstr "IP"') do echo IP :%%i >> %MyLW%\docs\datas\sources\log\User.txt
echo ================================================================= >> %MyLW%\docs\datas\sources\log\User.txt
cls
echo.
echo ~Chat~
echo.
echo.
echo Password speichern?
set /P pw= y/n:
if %pw% == y (
set sppw= %X%
set spuser= %user%
echo Password gespeichert.
pause > nul
) else (
set sppw=
set spuser=
echo Password nicht gespeichert.
)
cls
echo.
echo ~Chat~
echo.
echo.
echo [1] = Raumwahl
echo [2] = Name aendern
echo [3] = Passwort aendern
echo [4] = Nachrichten verwalten
echo [e] = Abbrechen
echo.
set /P W= Treffen Sie Ihre Wahl:_
if %W% == 1 call %MyLW%\docs\datas\rooms.bat
if %W% == 2 call %MyLW%\docs\datas\urename.bat
if %W% == 3 call %MyLW%\docs\datas\upass.bat
if %w% == 4 call %MyLW%\docs\datas\pm.bat
if %W% == e call %MyLW%\docs\start.bat
:fail1
cls
echo.
echo ~Chat~
echo.
echo.
echo Error
set errornum= 003
set descriptionde= Falsches Passwort...
set solutionde= bitte wiederholen Sie Ihren Eintrag...
echo.
echo ErrorNumber: %errornum%
echo.
echo %descriptionde%
echo %solutionde%
echo.
echo Abbrechen?
set /P Z= y/n:_
if %Z% == y call "%MyLW%\docs\start.bat"
echo Press Enter...
pause > nul
goto :manuel
Das Problem ist, dass er immer bei der Prüfung auf SPPW oder SPUSER abbricht...ich vermute mal, weil ich sie nicht vorinitialisiere...aber wenn ich sie am anfach auf "NULL" setzten würde würde er mir auch das temporäre pw löschen...
was wäre eure Idee hierzu?
vllt soetwas wie
set tmppw = %sppw%
set tmpuser= %spuser%
set sppw=
set spuser=
set sppw= %tmppw%
set spuser= %tmpuser%
Hallo @all!
Vorweg @bankaifan: Mit ""-Formatierung sieht das Ganze nicht nur besser aus, es lässt sich auch leichter auf eine Zeile Bezug nehmen ...
Generell gilt für Batch: Wenn Du in der Nähe eines "=" ein Leerzeichen verwendest, solltest Du einen guten Grund dafür haben - bei
sehe ich ihn beispielsweise nicht ...
Weiters sollte bei einem Vergleich mit "==" auf beiden Seiten sicher etwas stehen - daher zB
- dann brauchst Du auch keine Abfrage wie zB
vorschalten (was aber gelegentlich eine sinnvolle Alternative sein kann).
Grüße
bastla
Vorweg @bankaifan: Mit ""-Formatierung sieht das Ganze nicht nur besser aus, es lässt sich auch leichter auf eine Zeile Bezug nehmen ...
Generell gilt für Batch: Wenn Du in der Nähe eines "=" ein Leerzeichen verwendest, solltest Du einen guten Grund dafür haben - bei
if %user% == %spuser% (
Weiters sollte bei einem Vergleich mit "==" auf beiden Seiten sicher etwas stehen - daher zB
if [%user%]==[%spuser%] (
if defined spuser ...
Grüße
bastla
ok...das mit dem
ist wohl genau das was ich brauche, denn ich weiß relativ sicher, dass spuser meistens nicht initialisiert ist.
Wusste nicht das das Probleme machen kann.
Und das mit dem Leerzeichen hab ich jetzt auch gelernt
EDIT: Hm...hab jetzt noch
eingefügt...
aber wenn ich dann starte kommt nach der Usernameeingabe (Andere Batchdatei) ein blinkender Cursor.
Der Fehler muss trotzdem hier liegen, da alle anderen dateien perfekt funktionieren
[OT]
Ich hab eigentlich ne grundsätzliche abneigung HTML-Code gegenüber...mich nerven diese <Anweisung> dinger^^
Gruß
Bankaifan
[/OT]
if defined spuser
ist wohl genau das was ich brauche, denn ich weiß relativ sicher, dass spuser meistens nicht initialisiert ist.
Wusste nicht das das Probleme machen kann.
Und das mit dem Leerzeichen hab ich jetzt auch gelernt
EDIT: Hm...hab jetzt noch
if defined sppw goto :suser
set sppw=
:suser
if definded spuser goto :now
set spuser=
:now
eingefügt...
aber wenn ich dann starte kommt nach der Usernameeingabe (Andere Batchdatei) ein blinkender Cursor.
Der Fehler muss trotzdem hier liegen, da alle anderen dateien perfekt funktionieren
[OT]
Ich hab eigentlich ne grundsätzliche abneigung HTML-Code gegenüber...mich nerven diese <Anweisung> dinger^^
Gruß
Bankaifan
[/OT]
@ Biber Steht natürlich nicht so dortist nur n Tippfehler
@cewiethemaster du meinst das set %tempuser%... soll dorthin wo das Passwort gespeichert wird?
und das andere an den anfang von start.bat ist klar
Aber die variable %tempuser* verwirrt mich...warum hier der "stern"?
Und wie frage ich das dann ab?
hat iwie nen fehler
kann es sein dass auch hier ein * hin muss?
da kommt sonst ein Synthaxfehler.
Und wie frage ich das dann ab?
Hab es jetzt so:
aber er springt jedesmal zu fail1 also schätze ich mal dass %tempuser* leer ist.
Ich bin eben doch noch ein Batch anfänger^^
@cewiethemaster du meinst das set %tempuser%... soll dorthin wo das Passwort gespeichert wird?
und das andere an den anfang von start.bat ist klar
Aber die variable %tempuser* verwirrt mich...warum hier der "stern"?
Und wie frage ich das dann ab?
set %tempuser%= USERNAME
kann es sein dass auch hier ein * hin muss?
da kommt sonst ein Synthaxfehler.
Und wie frage ich das dann ab?
Hab es jetzt so:
if defined %tempuser* if %tempuser* == %user% (
set X= %sppw%
goto pruefe
)
:manuel
echo Bitte gib das Password für %user% ein.
set /P X= Password?_
:pruefe
if exist %MyLW%\docs\datas\wordspass\%user%\%X%.pwd goto :ok
goto :fail1
aber er springt jedesmal zu fail1 also schätze ich mal dass %tempuser* leer ist.
Ich bin eben doch noch ein Batch anfänger^^
Hallo!
Wenn schon, dann:
Abgesehen davon: Mein Hinweis auf die Leerzeichen gilt auch hinsichtlich der Zeile
Ich nehme mal nicht an, dass der Inhalt der Variablen %X% tatsächlich mit einem Leerzeichen beginnen soll - um das, und auch das eine oder andere nicht beabsichtige Leerzeichen am Ende zu verhindern, hat sich die Schreibweise
bewährt - danach steht in %X% nur der Teil zwischen "=" und schließendem Anführungszeichen (ohne das Anführungszeichen selbst).
Grüße
bastla
Wenn schon, dann:
if defined tempuser if %tempuser%==%user% (
set X= %sppw%
set "X=%sppw%"
Grüße
bastla
if defined tempuser if %tempuser%==%user% (
Wenn ich das so schreibe bricht er sofort ab
Ok^^ Das mit den Leerzeichen habe ich jetzt kapiert.
Wenn ich mir aber cewies code ansehe schreibt er immer %var1% == %var2% oder gilt bei dem "==" diese "Regel" nicht?
EDIT:
if defined %tempuser% if %tempuser*==%user% (
Jetzt funktioniert es
Ok, dank eurer Hilfe konnte ich jetzt sowohl das Temporäre speichern des Passwortes einführen, als auch das dauerhafte
=> Man kann die gesamte Passwortabfrage ausschalten
Man kann jetzt auch den Empfang privater Nachrichten sperren^^
weitere Einstellungsmöglichkeiten folgen
Gruß
Bankaifan
EDIT: Newssystem hinzugefügt
=> Man kann die gesamte Passwortabfrage ausschalten
Man kann jetzt auch den Empfang privater Nachrichten sperren^^
weitere Einstellungsmöglichkeiten folgen
Gruß
Bankaifan
EDIT: Newssystem hinzugefügt
Kleiner Tipp hierzu. Wenn du immer den gleichen "Pfadanfang" hast. also angenommen du hast den ganzen chat in einer tieferen struktur, z.B. W:\%User%\Programme\docs\datas\...
dann kannst du in der ersten Datei also der start.bat oben hinschreiben
und dann bei z.B. der PW-Abfrage:
so sparst du es dir, jedesmal die ganzen Pfade anzugeben und kann auch ganz einfach den ganzen chat verschieben, indem du nur diese eine Zeile änderst.
so passieren dir auch ggf. nicht die fehler dass du dich z.B. beim Pfad vertipps.
@cewie korrigiere mich wenn ich falsch liege :D
dann kannst du in der ersten Datei also der start.bat oben hinschreiben
set startpfad="W:\%User%\Programme\"
und dann bei z.B. der PW-Abfrage:
...
%startpfad%docs\datas\wordspass\cewie\lool.pwd
...
so sparst du es dir, jedesmal die ganzen Pfade anzugeben und kann auch ganz einfach den ganzen chat verschieben, indem du nur diese eine Zeile änderst.
so passieren dir auch ggf. nicht die fehler dass du dich z.B. beim Pfad vertipps.
@cewie korrigiere mich wenn ich falsch liege :D
Genau.
Und wenn du es noch anders machen möchtest kannst du es auch so machen:
Zur Erklärung: Du nimmst hier die nur die vorderen Stellen der Variablen CD (Ist vorbelegt und gibt den aktuellen Strukturpfad an). In meinem Fall sieht der Pfad so aus:
=> Mein Pfad ist 51 Stellen lang und soll also nur bis zum letzten Backslash gehen.
Oben gebe ich dann an von welcher stelle er beginnen soll (hier 0) und bis wohin er gehen soll (hier 51).
Ich hoffe es ist einigermaßen verständlich erklärt.
@cewie Ich bau den Chat grad noch weng um, damit man ihn auch weng allgemein nutzen kann (meiner ist ziemlich speziell) und anschließend könnten wir ihn auf die HP laden. Ich schick ihn dir dann mal zu.
Gruß Bankaifan
Und wenn du es noch anders machen möchtest kannst du es auch so machen:
set startpfad="%CD:~0,51%"
Zur Erklärung: Du nimmst hier die nur die vorderen Stellen der Variablen CD (Ist vorbelegt und gibt den aktuellen Strukturpfad an). In meinem Fall sieht der Pfad so aus:
C:\Dokumente und Einstellungen\ap448\Desktop\Chat\
=> Mein Pfad ist 51 Stellen lang und soll also nur bis zum letzten Backslash gehen.
Oben gebe ich dann an von welcher stelle er beginnen soll (hier 0) und bis wohin er gehen soll (hier 51).
Ich hoffe es ist einigermaßen verständlich erklärt.
@cewie Ich bau den Chat grad noch weng um, damit man ihn auch weng allgemein nutzen kann (meiner ist ziemlich speziell) und anschließend könnten wir ihn auf die HP laden. Ich schick ihn dir dann mal zu.
Gruß Bankaifan
:D Klar doch. Hab ihn jetzt gestern soweit fertig gemacht. Ich werd jetzt noch überlegen ob ich entweder ne Konfigurierungsdatei bau oder ob ich einfach ne Anleitung schreib, um ihn für jeden PC nutzbar zu machen. Hast du vllt ne Idee wie ich die Anzahl Stellen einer Eingabe auslesen könnte?
Die Sache ist nämlich die, ich hab die Methode mit dem
gemacht. Jetzt möchte ich in der Konfig-Datei den Pfad eingeben lassen, in dem der "docs"-Ordner liegt. Dann lass ich die Stellen auslesen und setze somit oben anstelle der 36 die Anzahl der Stellen.
Für den Rest werde ich nichtmehr viel Konfigurieren müssen. vllt noch was mit Farbwahl oder so.
Gruß Bankaifan
Die Sache ist nämlich die, ich hab die Methode mit dem
set MyLW=%CD:~0,36%
gemacht. Jetzt möchte ich in der Konfig-Datei den Pfad eingeben lassen, in dem der "docs"-Ordner liegt. Dann lass ich die Stellen auslesen und setze somit oben anstelle der 36 die Anzahl der Stellen.
Für den Rest werde ich nichtmehr viel Konfigurieren müssen. vllt noch was mit Farbwahl oder so.
Gruß Bankaifan
Hat vllt jmd ne Idee wie ich ne Art aktualisierungs System basteln kann?
Also ich dachte mir das folgendermaßen:
1. User downloaded den Chat und richtet ihn ein.
2. Er stellt in den Einstellungen die Meldung bei neuer Version auf "Ein".
3. Ich lade eine neue Version des Chats hoch.
4. Der Chat prüft automatisch bei jedem Start ob ne neue Version verfügbar ist.
5. Aufgrund der neuen Version kommt ne neue Meldung dass ein Update verfügbar ist.
Ich bin offen für jede Programmiersprache, wobei mir vbs sehr recht wäre, wenn das möglich ist^^
PS: Bis zu 3. kann ich es alleine 4. und 5. wären das Problem
Bankaifan
Also ich dachte mir das folgendermaßen:
1. User downloaded den Chat und richtet ihn ein.
2. Er stellt in den Einstellungen die Meldung bei neuer Version auf "Ein".
3. Ich lade eine neue Version des Chats hoch.
4. Der Chat prüft automatisch bei jedem Start ob ne neue Version verfügbar ist.
5. Aufgrund der neuen Version kommt ne neue Meldung dass ein Update verfügbar ist.
Ich bin offen für jede Programmiersprache, wobei mir vbs sehr recht wäre, wenn das möglich ist^^
PS: Bis zu 3. kann ich es alleine 4. und 5. wären das Problem
Bankaifan
jo, wäre super wenn wir des noch machen können, in meiner Konfig kann man jetzt die Farben wählen und Userrechte einrichten. Einziges Problem ist noch, wie man neue Räume einrichtet, da man hierfür ja teilweise mitten in den code was einbauen muss. vllt mach ich es aber so, dass ich einfach an der stelle, wo normalerweiße i-was mit den Räumen gemacht wird, ne andere datei aufruf in der die chats aufgelistet sind. dann kann ich die so einfacher erweitern. mal sehen.
Gruß Bankaifan
Gruß Bankaifan
Mach ich, wenn ich daheim bin :D
und so sehen die räume selbst aus
@echo off
set roompath="%MyLW%\docs\datas\settings\%user%\room.settings"
set MyLW=%CD:~0,39%
:start
if defined %input% if %input%==room goto :manuel
if exist %roompath% goto :default
:manuel
cls
echo.
echo ~Chat by AP448~
echo.
echo.
Echo Willkomme zurück, %user%...
echo.
echo.
echo Zur Zeit sind folgende Räume freigegeben:
echo.
dir %MyLW%\docs\datas\sources\rooms /B
echo [l] = Letzter besuchter Raum
echo [e] = Abbrechen
echo.
echo Bitte gib die Nummer des Raumes ein
echo.
set /P room= Nummer des Raumes:
if "%room%"=="" goto :manuel
if "%room%"=="e" call %MyLW%\docs\datas\sources\users\%user%.bat
if "%room%"=="l" call "%MyLW%\docs\datas\sources\rooms\%lastroom%.bat"
if "%room%"=="1" set room=Allgemein&& call "%MyLW%\docs\datas\sources\rooms\[1] = Allgemein.bat"
if "%room%"=="2" set room=Langeweile&& call "%MyLW%\docs\datas\sources\rooms\[2] = Langeweile.bat"
if "%room%"=="3" set room=Planung&& call "%MyLW%\docs\datas\sources\rooms\[3] = Planung.bat"
goto :start
:fail1
cls
echo.
echo ~Chat by AP448~
echo.
echo.
echo Error
set errornum= 004
set descriptionde= Raum Fehler...
set solutionde= bitte wiederholen Sie Ihren Eintrag...
echo.
echo ErrorNumber: %errornum%
echo.
echo %descriptionde%
echo %solutionde%
echo Press Enter...
pause > nul
goto :start
:default
set /P room=<%roompath%
if not exist "%MyLW%\docs\datas\sources\rooms\%room%.bat" goto :fail2
call "%MyLW%\docs\datas\sources\rooms\%room%.bat"
goto :start
und so sehen die räume selbst aus
@echo
set MyLW=%CD:~0,39%
:start
set roomname=Allgemein
set lastroom=[1] = Allgemein
if %user%==Guest goto :keinep
if exist %MyLW%\docs\datas\sources\blocked\PC.txt (
for /f "delims=" %%i in (%MyLW%\docs\datas\sources\blocked\PC.txt) do findstr /i /b /C:%computername% %MyLW%\docs\datas\sources\blocked\PC.txt> nul && call %MyLW%\docs\datas\sources\blocked.bat
)
if exist %MyLW%\docs\datas\sources\blocked\Users.txt (
for /f "delims=" %%c in (%MyLW%\docs\datas\sources\blocked\Users.txt) do findstr /i /b /C:%username% %MyLW%\docs\datas\sources\blocked\Users.txt> nul && call %MyLW%\docs\datas\sources\blocked.bat
)
:keinep
cls
echo.
echo ~Chat by AP448~
echo.
echo.
echo Aktueller Channel: %roomname%
echo.
echo.
echo User %user% betrat den Chat %roomname% um %time:~0,5%...
echo User %user% betrat den Chat %roomname% um %time:~0,5%... >> %MyLW%\docs\datas\sources\log\allgemein.room
pause > nul
echo.
:input
set input=
cls
echo.
echo ~Chat by AP448~
echo.
echo.
echo Aktueller Channel: %roomname%
echo.
echo.
echo Gib deine Nachricht ein...
echo.
echo [logoff] = Ausloggen
echo [room] = Zurück zu Raumwahl
echo.
set /P input= Message:
if "%input%"=="" (
more < %MyLW%\docs\datas\sources\log\allgemein.room
echo Press Enter...
pause > nul
goto :input
)
if "%input%"==res (
more < %MyLW%\docs\datas\sources\log\allgemein.room
echo Press Enter...
pause > nul
goto :input
)
if "%input%" == "room" call %MyLW%\docs\datas\rooms.bat
if "%input%" == "logoff" goto :logoff
if "%input%" NEQ "res" echo %user%, um %time:~0,5% - %input% >> %MyLW%\docs\datas\sources\log\allgemein.room
more < %MyLW%\docs\datas\sources\log\allgemein.room
)
echo Press Enter...
pause > nul
goto :input
:logoff
echo User %user% hat sich um %time:~0,5% abgemeldet. >> %MyLW%\docs\datas\sources\log\allgemein.room
call %MyLW%\docs\start.bat
Hallo, könnte jemand den Chat als download in einem zip/rar archiv bereitstellen ?
http://www.megaupload.com/?d=OPV7WSJG
Die Rechte liegen natürlich bei WireWare (Cewie und mir) also bitte nicht als deinen ausgeben, die version ist jedoch noch nicht die 100 % endgültige, für die abschlussversion musst du auf der HP schauen wo ich dir den link geschickt habe.
Gruß Bankaifan
Die Rechte liegen natürlich bei WireWare (Cewie und mir) also bitte nicht als deinen ausgeben, die version ist jedoch noch nicht die 100 % endgültige, für die abschlussversion musst du auf der HP schauen wo ich dir den link geschickt habe.
Gruß Bankaifan
Hallo, wie kann ich einen neuen User (über die unewuser.bat geht es nicht) erstellen und wie kann ich den Chat im Netzwerk anwenden ?
Du musst das Programm mit der Start.bat starten, dann gehst du auf Gastkonto und dort kannst du den user erstellen als admin musst du dich halt im admin acc einloggen, passwort ist "pass" ... wenn du noch weng wartest haben wir auch ne anleitung. den chat kannst du ganz einfach im netz anwenden indem du die ordnerstrucktur auf ne netzwerkfestplatte setzt
___________________
Dann warte ich noch
___________________
Dann warte ich noch
___________________