Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @echo OFF
- title LAN-Messenger
- mode CON cols=40 lines=3
- rem IF /i %1==debug @echo ON
- color 07
- REM ALLGEMEINE VERSION
- SET ver=1.3.4
- REM SET /P readcolor=<.\data_lanmsgr\color.data
- REM color %readcolor%
- :password
- mode CON cols=50 lines=6
- :login
- mode CON cols=50 lines=6
- if exist ".\data_lanmsgr\nick.data" ( GOTO takename)
- CLS
- echo ---------------- LAN - Messenger -----------------
- echo :------------------------------------------------:
- echo : Bitte geben Sie ihren Chat-Namen ein! : class="re0">
- echo --------------------------------------------------
- echo.
- SET /p "chatn=Chat-Name: "
- IF /i "%chatn%"=="" GOTO emptyname
- GOTO rules
- :emptyname
- SET "chatn=%username%"
- GOTO rules
- :takename
- SET /P chatn=<./data_lanmsgr\nick.data
- ECHO.
- ECHO ==================================================
- ECHO - Willkommen, %chatn% -
- ECHO ==================================================
- TIMEOUT /T 1 /NOBREAK>NUL
- :rules
- @mode CON cols=50 lines=17
- IF exist ".\data_lanmsgr\rules.accepted" goto load
- CLS
- echo -------------------- Regeln ----------------------
- echo : 1. Bitte beleidigen Sie niemanden! : class="re0">
- echo : :
- echo : 2. Denken Sie daran, dass jeder der :
- echo : ber dieses Programm verfgt und :
- echo : im lokalen Netzwerk angemeldet ist, :
- echo : ihre Nachrichten, welche Sie in :
- echo : diesem Programm schreiben, lesen :
- echo : kann! :
- echo : :
- echo : 3. Ich bernehme keine Haftung fr :
- echo : Sch„den! (Yannik Hbl) :
- echo --------------------------------------------------
- echo : Ich akzeptiere die Regeln: [j]a / [n]ein :
- echo --------------------------------------------------
- echo.
- choice
- IF %errorlevel% equ 1 GOTO loadfirst
- CLS
- GOTO password
- :loadfirst
- mkdir .\data_lanmsgr 2>nul
- rem was sollen die && das sind bedingte Ausführungen! (wenn dann wenigstens Befehl & Befehl)
- rem wenn es keine speziellen Notwendigkeit dafür gibt, dann ein Befehl pro Zeile...
- echo true > .\data_lanmsgr\rules.accepted
- :load
- @mode CON cols=45 lines=10
- CLS
- for /l %%a in (1,1,7) do echo.
- echo Version %ver% [-------------] 0/100
- timeout 1 >NUL
- CLS
- rem weiß nicht was das soll, die Datei kann zu diesem Zeitpunkt noch garnicht existieren!
- IF exist ".\data_lanmsgr\pathhere.data" ( GOTO completed ) else ( ECHO DEBUG: - Config-Ordner nicht gefunden. - )
- for /l %%a in (1,1,6) do echo.
- echo Version %ver% [=====--------] 27/100
- timeout 1 >NUL
- CLS
- for /l %%a in (1,1,7) do echo.
- echo Version %ver% [=======------] 43/100
- timeout 1 >NUL
- rem wenn Ordner existiert erroroutput nach nul umleiten! 2>nul (standardoutput ist bei md immer Leer also bringt nix!)
- mkdir data_lanmsgr 2>nul
- ECHO %chatn%>.\data_lanmsgr\nick.data
- rem echt blöd schon hier path.data zu erstellen, wenn noch gar kein Pfad abgerfragt wurde... das erschwert später die Entscheidung zum erstellen ...aber ich lasse es...
- ECHO NOCH_KEINEN_PFAD_GESETZT> .\data_lanmsgr\path.data
- REM Hier wird nun, wenn noch nicht vorhanden, die chatausgabe Batch erstellt!
- rem das liese sich bequemer mit einer einer multiblen Batch lösen... habe aber keinen Bock alles umzuschreiben
- ECHO @ECHO OFF >> .\data_lanmsgr\Chat-LanMsgr.bat
- ECHO TITLE Chat-LanMsgr>> .\data_lanmsgr\Chat-LanMsgr.bat
- ECHO mode CON cols=122 lines=25 >> .\data_lanmsgr\Chat-LanMsgr.bat
- ECHO SET /P readcolor=^<.\data_lanmsgr\color.data >> .\data_lanmsgr\Chat-LanMsgr.bat
- ECHO color %%readcolor%% >> .\data_lanmsgr\Chat-LanMsgr.bat
- ECHO CLS >> .\data_lanmsgr\Chat-LanMsgr.bat
- ECHO :start >> .\data_lanmsgr\Chat-LanMsgr.bat
- rem wegen möglicher Pfade mit Leerzeichen...
- ECHO for /f "usebackq tokens=*" %%%%v in (".\path.data") do set "path1=%%%%v" >> .\data_lanmsgr\Chat-LanMsgr.bat
- ECHO CLS >> .\data_lanmsgr\Chat-LanMsgr.bat
- ECHO for /f "usebackq " %%%%p in ("%%path1%%\data\info.data") do set "oldnumber=%%%%p" >> .\data_lanmsgr\Chat-LanMsgr.bat
- ECHO set /a oldnum=%%oldnumber%% >> .\data_lanmsgr\Chat-LanMsgr.bat
- ECHO echo -------------------------------------------------------------------------------------------------------------------------- >> .\data_lanmsgr\Chat-LanMsgr.bat
- ECHO echo ----------{Tipp: Zum Kopieren von Text, reicht es diesen zu markieren und einen Rechtsklick darauf zu machen.}------------ >> .\data_lanmsgr\Chat-LanMsgr.bat
- ECHO echo -------------------------------------------------------------------------------------------------------------------------- >> .\data_lanmsgr\Chat-LanMsgr.bat
- ECHO :chat >> .\data_lanmsgr\Chat-LanMsgr.bat
- rem fehlermeldung abfangen wenn gerrade auf die Darei geschrieben wird
- ECHO (for /f "usebackq" %%%%o in ("%%path1%%\data\info.data") do set "number=%%%%o")2^>NUL >> .\data_lanmsgr\Chat-LanMsgr.bat
- rem ECHO ping localhost -n 1 -w [milliseconds]^>NUL ....
- rem erstmal ist die Syntax falsch die Angabe von Millisekunden von Timeout (-w) wirkt nur auf sehr lange Pings, was für localhost nie Eintritt
- ECHO IF "%%number%%" gtr "%%oldnum%%" GOTO chatread >> .\data_lanmsgr\Chat-LanMsgr.bat
- rem besser als localhostpings (<1ms) einfach ein Paar 1000 calls ins Nichts (zwar sehr ungenau, aber wir wollen den anderen Tread ja zeit zum schreiben geben)
- rem bei sehr langsamen Rechnern etwas weniger
- echo for /l %%%%a in (1,1,5000) do (call ) >> .\data_lanmsgr\Chat-LanMsgr.bat
- ECHO GOTO chat >> .\data_lanmsgr\Chat-LanMsgr.bat
- ECHO :chatread >> .\data_lanmsgr\Chat-LanMsgr.bat
- rem warum nochmal die Date lesen? einfach die Variable zuweisen
- ECHO set "oldnum=%%number%%" >> .\data_lanmsgr\Chat-LanMsgr.bat
- ECHO SET /p txtout=^<"%%path1%%\mails\data.mssgdata" >> .\data_lanmsgr\Chat-LanMsgr.bat
- ECHO for /f "usebackq" %%%%m in ("%%path1%%\mails\data.mssgdata") do set "colortxt=%%%%m"^NUL >> .\data_lanmsgr\Chat-LanMsgr.bat
- ECHO IF "%%colortxt%%"=="colorfun" GOTO colorit >> .\data_lanmsgr\Chat-LanMsgr.bat
- ECHO ECHO %%txtout%% >> .\data_lanmsgr\Chat-LanMsgr.bat
- ECHO GOTO chat >> .\data_lanmsgr\Chat-LanMsgr.bat
- ECHO :colorit >> .\data_lanmsgr\Chat-LanMsgr.bat
- ECHO color 02 >> .\data_lanmsgr\Chat-LanMsgr.bat
- ECHO timeout 1 ^>NUL >> .\data_lanmsgr\Chat-LanMsgr.bat
- ECHO color 20 >> .\data_lanmsgr\Chat-LanMsgr.bat
- ECHO timeout 1 ^>NUL >> .\data_lanmsgr\Chat-LanMsgr.bat
- ECHO color fc >> .\data_lanmsgr\Chat-LanMsgr.bat
- ECHO timeout 1 ^>NUL >> .\data_lanmsgr\Chat-LanMsgr.bat
- ECHO color cb >> .\data_lanmsgr\Chat-LanMsgr.bat
- ECHO timeout 1 ^>NUL >> .\data_lanmsgr\Chat-LanMsgr.bat
- ECHO color 85 >> .\data_lanmsgr\Chat-LanMsgr.bat
- ECHO timeout 1 ^>NUL >> .\data_lanmsgr\Chat-LanMsgr.bat
- ECHO color 20 >> .\data_lanmsgr\Chat-LanMsgr.bat
- ECHO timeout 1 ^>NUL >> .\data_lanmsgr\Chat-LanMsgr.bat
- ECHO color e9 >> .\data_lanmsgr\Chat-LanMsgr.bat
- ECHO timeout 1 ^>NUL >> .\data_lanmsgr\Chat-LanMsgr.bat
- ECHO color %%readcolor%% >> .\data_lanmsgr\Chat-LanMsgr.bat
- ECHO GOTO chat >> .\data_lanmsgr\Chat-LanMsgr.bat
- CLS
- ECHO 07> .\data_lanmsgr\color.data
- CLS
- ECHO 1 > .\data_lanmsgr\pathhere.data
- CLS
- for /l %%a in (1,1,7) do echo.
- echo Version %ver% [=========----] 61/100
- timeout 1 >NUL
- CLS
- ECHO DEBUG: - Config-Ordner wurde erstellt. -
- for /l %%a in (1,1,6) do echo.
- echo Version %ver% [===========--] 82/100
- timeout 1 >NUL
- CLS
- :completed
- echo DEBUG: - Config-Ordner wurde eingelesen! -
- for /l %%a in (1,1,6) do echo.
- echo Version %ver% [============-] 96/100
- timeout 1 >NUL
- CLS
- for /l %%a in (1,1,7) do echo.
- echo Version %ver% [=============] 100/100
- timeout 1 >NUL
- CLS
- echo Starte . [-]
- timeout 1 >NUL
- CLS
- echo Starte . . [/]
- timeout 1 >NUL
- CLS
- echo Starte . . . [\]
- timeout 1 >NUL
- CLS
- GOTO console
- :console
- REM Hier ist nun das "Hauptmenü"/die Konsole
- @mode CON cols=41 lines=10
- SET /P readcolor=<.\data_lanmsgr\color.data
- color %readcolor%
- rem ??? keine Ahnung warum dies
- TASKKILL /FI "WINDOWTITLE eq Chat-LanMsgr">NUL
- rem auch Pfade mit Leerzeichen einlesen (alle token am Stück)
- for /f "usebackq tokens=*" %%v in (".\data_lanmsgr\path.data") do set "path1=%%v"
- echo blubbb %path1%
- @mode CON cols=41 lines=7
- CLS
- echo --------------- Konsole -----------------
- echo : Sie befinden sich in der Konsole. :
- echo : Geben Sie /help ein, damit alle :
- echo : Befehle gelistet werden. :
- echo -----------------------------------------
- echo.
- SET /p command=Befehl:
- IF %command%==/help GOTO help
- IF %command%==/messenger GOTO write-read
- IF %command%==/close GOTO close
- IF %command%==/exit GOTO close
- IF %command%==/new-nick GOTO nn
- IF %command%==/settings GOTO einstellungen
- IF %command%==/info GOTO informationen
- CLS
- color 04
- ECHO.
- ECHO.
- ECHO.
- ECHO Ungltiger Befehl!
- ECHO.
- ECHO.
- TIMEOUT /T 1 /NOBREAK>NUL
- color %readcolor%
- :help
- @mode CON cols=41 lines=11
- CLS
- echo ---------------- Hilfe ------------------
- echo /messenger : startet Messenger
- echo /close : schlieát das Programm
- echo /new-nick : neuen Chat-Namen eingeben
- echo /settings : Einstellungen (Netzwerkpfad,
- echo Farbe)
- echo /info : Infos ber das Programm
- echo -----------------------------------------
- echo Beliebige Taste um fortzufahren
- echo.
- pause >NUL
- GOTO console
- :close
- TASKKILL /FI "WINDOWTITLE eq Chat-LanMsgr">NUL
- exit
- :informationen
- @mode CON cols=41 lines=12
- CLS
- ECHO ------------ Informationen --------------
- ECHO : Dieses Tool wurde von Yannik Hbl :
- ECHO : erstellt. :
- ECHO : Es dient zur Kommunikation ber ein :
- ECHO : Netzlaufwerk. :
- ECHO :---------------------------------------:
- ECHO : ver. %ver% (Beta) (09/2020):
- ECHO -----------------------------------------
- ECHO.
- ECHO Drcken sie eine beliebige Taste, um zur
- ECHO Konsole zu gelangen . . .
- pause>NUL
- GOTO console
- :write-read
- CLS
- GOTO messengerinfo
- :nn
- @mode CON cols=41 lines=5
- CLS
- echo ----------- Neuer - ChatName ------------
- echo : Geben Sie ihren neuen Chat-Namen ein! : class="re0">
- echo -----------------------------------------
- echo.
- SET /p chatn=Chat-Name:
- CLS
- echo Ihr Name ist nun %chatn%!
- timeout /t 2 /NOBREAK>NUL
- ECHO %chatn%>.\data_lanmsgr\nick.data
- GOTO console
- :einstellungen
- @mode CON cols=41 lines=11
- CLS
- ECHO ------------ Einstellungen --------------
- ECHO : :
- ECHO : W„hlen Sie aus zwischen: :
- ECHO :---------------------------------------:
- ECHO : 1 - Netzwerkpfad angeben :
- ECHO : 2 - Farbe „ndern :
- ECHO : 3 - Reset info.data :
- ECHO : 4 - zur Konsole :
- ECHO -----------------------------------------
- ECHO.
- set /p setdecision=Auswahl:
- IF /I %setdecision%==1 GOTO setpath
- IF /I %setdecision%==2 GOTO setcolor
- IF /I %setdecision%==4 GOTO console
- IF /I %setdecision%==3 GOTO resetinfodata
- GOTO console
- :resetinfodata
- @mode CON cols=41 lines=6
- CLS
- ECHO ----------- RESET-DATA-FILE? ------------
- ECHO : Wollen sie die info.data Datei im :
- ECHO : LAN-Ordner zurcksetzen?(auf Wert 200):
- ECHO -----------------------------------------
- ECHO.
- SET /P agreeresetdata=j/n:
- IF /I %agreeresetdata%==j GOTO resetinfodatanow
- GOTO einstellungen
- :resetinfodatanow
- CLS
- @mode CON cols=41 lines=4
- ECHO 200 > %path1%\data\info.data
- CLS
- ECHO.
- ECHO Die Datei wird auf ihre Standardwerte
- ECHO zurckgesetzt . . .
- TIMEOUT 2 /NOBREAK>NUL
- GOTO einstellungen
- :setcolor
- @mode CON cols=48 lines=20
- CLS
- ECHO -------------- Farbeinstellungen ---------------
- ECHO : Geben Sie eine Farbkombination an! : class="re0">
- ECHO :----------------------------------------------:
- ECHO : z.B. 4A (roter Hintergr.;hellgrne Schrift) :
- ECHO :----------------------------------------------:
- ECHO :Farben: :
- ECHO : :
- ECHO :0 = Schwarz, 1 = Blau, 2 = Grn, 3 = Trkis, :
- ECHO :4 = Rot, 5 = Lila, 6 = Gelb, 7 = Hellgrau,:
- ECHO :8 = Grau, 9 = Hellblau, A = Hellgrn, :
- ECHO :B = Helltrkis, C = Hellrot, D = Helllila, :
- ECHO :E = Hellgelb, F = Weiá :
- ECHO : :
- ECHO :-----------------------------------------------
- ECHO : Syntax: [Ziffer1=Hintergr.][Ziffer2=Schrift] :
- ECHO :----------------------------------------------:
- ECHO : Beispiele: 4a, 07 oder CD Standard: 07 :
- ECHO ------------------------------------------------
- ECHO.
- Set /p colorauswahl=Eingabe:
- ECHO %colorauswahl%>.\data_lanmsgr\color.data
- GOTO console
- :setpath
- @mode CON cols=29 lines=10
- CLS
- echo -----------------------------
- echo :Geben Sie nun den absoluten:
- echo : Pfad zum Netzwerkordner :
- echo : fr den Messenger an! : class="re0">
- echo :- - - - - - - - - - - - - -:
- echo :Bsp.: "T:" :Tipp: Tab-Taste:
- echo -----------------------------
- echo.
- rem Gänsefüßchen sind exterm wichtig! ein Pfad kann auch leerzeichen enthalten!
- SET /p "path1=Pfad: "
- rem ist die eingabe Leer? ...dann erneut abfragen
- if "%path1%"=="NOCH_KEINEN_PFAD_GESETZT" goto :setpath
- mkdir .\data_lanmsgr 2>nul
- ECHO %path1%> .\data_lanmsgr\path.data
- rem Warum zurück zur Console, wenn der Path noch garnicht erstellt ist????
- rem das ist der Zeitpunkt für die ungenutzte Sprungmarke :makelanmess
- if not exist "%path1%\" goto :makelanmess
- GOTO console
- :messengerinfo
- @mode CON cols=44 lines=24
- CLS
- ECHO -------------- Informationen ---------------
- echo : Sie befinden sich nun im Messenger! : class="re0">
- echo : Geben Sie dann ihre Nachrichten :
- echo : ein und schicken diese mit ENTER ab, :
- echo : damit jeder aus ihrem Netzwerk diese :
- echo : Nachricht lesen kann. :
- echo : Wenn Sie jetzt mit ENTER best„tigen :
- echo : startet sich der Nachrichteneingang, :
- echo : und in diesem Fenster erscheint das :
- echo : Eingabefenster fr Nachrichten. :
- echo :------------------------------------------:
- echo : Geben sie ggf. /console als Nachricht :
- echo : ein, damit sie zur Konsole gelangen. :
- echo --------------------------------------------
- echo Ihr ChatName ist %chatn%!
- echo --------------------------------------------
- echo Der Netzwerk-Ordner-Pfad ist wie folgt:
- echo %path1%
- echo --------------------------------------------
- IF exist "%path1%" (
- ECHO Pfad existiert!
- ) else (
- ECHO Pfad existiert nicht!
- ECHO.
- pause
- GOTO infopath
- )
- IF exist "%path1%\madedir.data" ( ECHO LanMess-Ordner erkannt! ) else ( ECHO Kein LanMess-Ordner im Pfad gefunden gefunden! && ECHO. && PAUSE && ECHO debug:makelanmess && GOTO makelanmess )
- pause
- start .\data_lanmsgr\Chat-LanMsgr.bat
- GOTO inputline
- :infopath
- @mode CON cols=44 lines=12
- CLS
- color 04
- ECHO ----------------- FEHLER! ------------------
- ECHO : Der Pfad zu LanMess-Ordner: :
- ECHO "%path1%"
- ECHO : existiert nicht! : class="re0">
- ECHO --------------------------------------------
- ECHO : Bitte geben Sie in der Konsole einen :
- ECHO : richtigen Pfad mit /settings an! : class="re0">
- ECHO --------------------------------------------
- ECHO.
- pause
- GOTO console
- rem die Sprungmarke :makelanmess wurde nirgends angesprungen
- rem somit wurde auch nie die entsprechender Ordnerstruktur erstellt
- :makelanmess
- @mode CON cols=44 lines=11
- CLS
- ECHO -------Erstelle-neuen-LanMess-Ordner--------
- ECHO : Ein LanMess-Ordner wurde nicht gefunden! : class="re0">
- ECHO :------------------------------------------:
- ECHO : Wollen sie unter folgendem Pfad: :
- ECHO "%path1%"
- ECHO : einen LanMess-Ordner integrieren? :
- ECHO --------------------------------------------
- choice
- IF %errorlevel% equ 1 GOTO makelanmessnew
- GOTO console
- :makelanmessnew
- CLS
- ECHO LanMess Ordner wird erstellt [-]
- mkdir "%path1%\data" 2>nul
- timeout /t 1 /NOBREAK>NUL
- CLS
- ECHO LanMess Ordner wird erstellt [\]
- mkdir "%path1%\mails" 2>nul
- ECHO bsp > "%path1%\mails\data.mssgdata"
- ECHO 200 > "%path1%\data\info.data"
- timeout /t 1 /NOBREAK>NUL
- CLS
- ECHO LanMess Ordner wird erstellt [/]
- ECHO 1 > "%path1%\madedir.data"
- timeout /t 1 /NOBREAK>NUL
- CLS
- ECHO LanMess Ordner wird erstellt [-]
- timeout /t 1 /NOBREAK>NUL
- rem den neuen Pfad in die path.data schreiben (Klammer um den Befehl schütz redirection von Pfaden mit einer einsamen Ziffer am Ende)
- (echo %path1%)>.\data_lanmsgr\path.data
- GOTO write-read
- rem weshalb das goto "allergisch" "messenger" als Label reagiert ist mir bisher ein Rätsel
- rem andere Namen funktionieren...
- rem da muss ich mich mal wenn ich sehr viel Zeit habe drüberbeugen... (interessanter Bug)
- :inputline
- CLS
- title LAN-Messenger - %chatn%
- mode CON cols=122 lines=3
- ECHO.
- SET /p "nachricht=:} "
- IF "%nachricht%"=="/console" GOTO outtoconsole
- IF "%nachricht%"=="/close" GOTO outtoconsole
- IF "%nachricht%"=="/color-troll" GOTO colortype
- ECHO.%chatn%: "%nachricht%">"%path1%\mails\data.mssgdata"
- for /f "usebackq" %%o in ("%path1%\data\info.data") do set "number=%%o"
- set /a number2=%number%+1
- ECHO %number2% >"%path1%\data\info.data"
- CLS
- ECHO.
- ECHO Bitte warten... Nachricht wird versendet!
- TIMEOUT 1 /NOBREAK>NUL
- GOTO :inputline
- :outtoconsole
- @title LAN-Messenger
- ECHO.-{%chatn% hat den Chat verlassen!}-> %path1%\mails\data.mssgdata
- set /p number=<"%path1%\data\info.data"
- set /a "number2=%number%+1"
- ECHO %number2% > "%path1%\data\info.data"
- CLS
- GOTO console
- :colortype
- ECHO colorfun> "%path1%\mails\data.mssgdata"
- CLS
- ECHO.
- ECHO Bitte warten... Befehl wird versendet!
- for /f "usebackq" %%o in ("%path1%\data\info.data") do set "numbert=%%o"
- set /a number5=%numbert%+1
- ECHO %number5%>"%path1%\data\info.data"
- TIMEOUT /T 1 /NOBREAK>NUL
- GOTO messenger
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement