marlon1
Goto Top

Batch Lan-Chat

Hallo,
Ich arbeite seit längerem an ein Lan-Chat aber komme nicht weiter.
Es funktioniert alles super, aber wenn der Chat in der Batch zu voll ist geht das Batch Fenster hoch und runter...
Also jetzt meine Frage: gibt es eine Möglichkeit wie ich verhindern kann das das Batch Fenster hoch und runter geht?
Also zB. mit ein Befehl oder so?

Code:

Chat.bat:

@echo off
title Lan-Chat: Chat
:1
timeout /t 1 > NUL
cls
FOR /f "delims=" %%i IN (Chat.txt) DO echo %%i
goto 1


Nachrichten.bat:

@echo off
title Lan-Chat: Messager

set /p Nick=Wahle ein Nickname aus:
goto 1

:1
cls
set /p nach=Schreibe eine Nachricht:
Echo %Nick% : %nach% >> Chat.txt
goto 1

Content-Key: 291471

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

Printed on: April 18, 2024 at 23:04 o'clock

Member: rubberman
rubberman Dec 21, 2015 at 15:02:57 (UTC)
Goto Top
Hallo Marlon1.

Genau weiß ich nicht, was du mit "Batch Fenster hoch und runter gehen" meinst. Meine Vermutung ist, dass du verhindern willst, dass der Inhalt scrollbar ist.
mode 50,20
... würde bspw. das Fenster auf 50 Zeichen Breite und 20 Zeilen begrenzen.

Grüße
rubberman
Member: Marlon1
Marlon1 Dec 21, 2015 at 15:15:46 (UTC)
Goto Top
Also ich meine mit hoch und runter das es aus der .txt alles anzeigen will aber das Batch Fenster zu klein ist und deshalb das Fenster flackert. Und das will ich halt verhinden
Member: rubberman
Solution rubberman Dec 21, 2015 updated at 15:39:32 (UTC)
Goto Top
Achso.
@echo off & setlocal EnableDelayedExpansion
title Lan-Chat: Chat
set "file=Chat.txt"  
set /a "n=0, n_old=0"  

for /l %%i in () do (
  if exist "%file%" (  
    for /f %%j in ('type "%file%"^|find /c /v ""') do set /a "n=%%j"  
    if !n! gtr !n_old! (
      <"%file%" (  
        for /l %%k in (1 1 !n_old!) do set /p "="  
        for /l %%k in (!n_old! 1 !n!) do (
          set "line=" &set /p "line="  
          echo(!line!
        )
      )
      set /a "n_old=n"  
    )
  )
  >nul timeout /t 1 /nobreak
)
Member: Marlon1
Marlon1 Dec 21, 2015 at 15:39:29 (UTC)
Goto Top
Danke!