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-ID: 291471

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

Ausgedruckt am: 26.11.2024 um 00:11 Uhr

rubberman
rubberman 21.12.2015 um 16:02:57 Uhr
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
Marlon1
Marlon1 21.12.2015 um 16:15:46 Uhr
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
rubberman
Lösung rubberman 21.12.2015 aktualisiert um 16:39:32 Uhr
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
)
Marlon1
Marlon1 21.12.2015 um 16:39:29 Uhr
Goto Top
Danke!