Bat局域网聊天室--用批处理编的

今天天没事做,玩玩BAT就想起了编这个… 完善中…….  用一台 host 做服务器共享一个文件夹如: server 

  1. 在客户机 A 和 B 上 打开user.bat 输入 共享文件夹地址,如: \\fileserver\chatroom
  2. 输入昵称
  3. 输入要聊天、或留言的对象(对方昵称)
  4. 聊天、留言、查看在线用户等操作

原理 是通过共享文件夹的文件操作(列出、读写)通过BAT有限的编程能力(这也是有趣的地方)来完成信息交换

user.bat

title 局域网聊天室--主页 https://yryz.net
color 2f 
@mode con lines=20 cols=80 
@echo off 
echo.&echo. 
:server 
set server= 
set /p server=请输入服务地址: 
call server.bat 

server.bat

dir %server% 
cls 
echo. 
if ERRORLEVEL 1 call user.bat 
if "%server%"=="" call user.bat 
:n 
echo.&echo. 
set n= 
set /p n= 请输入昵称: 
if "%n%"=="" goto n 
title 当前用户:%n% 
:l 
rem 按扩列出文件 
echo. 
echo ────────────────────────────────────── 
echo 当前用户: 
echo. 
dir %server%\*.info>%server%\list.list 
findstr ".info" %server%\list.list >%server%\list.bak 
if errorlevel 1 cls&echo 当前没有用户在线,留言请输入对方昵称 
for /f "tokens=4 delims=. " %%i in (%server%\list.bak) do @echo %%i 
echo ────────────────────────────────────── 
pause 
IF EXIST %server%\%n%.user (echo 您有新留言,请按 1 进行查收,按其它键稍后再看&echo.&set /p w=请选择:) ELSE goto u 
if "%w%"=="1" goto s 
:u 
echo ────────────────────────────────────── 
set u= 
set /p u= 输入聊天对象: 
if "%u%"=="" goto u 
title %n%%u% 聊天中... 
echo 用户:%n%>%server%\%n%.info 
echo 计算机名:%COMPUTERNAME%>>%server%\%n%.info 
cls 
:a 
echo ────────────────────────────────────── 
echo.&echo. 
set a= 
set /p a= 请输入聊天内容: 
if "%a%"=="" goto a 
echo. 
IF EXIST %server%\%u%.info (echo %n% %date% %time% > %server%\%u%.user) ELSE echo %n%%date% %time%留言: >> %server%\%u%.user 
echo %a% >>%server%\%u%.user 
echo ──────────────────────────────────────  >>%server%\%u%.user 
rem 这里是存储聊天记录 
echo %date% %time% >>%server%\bak.bak 
echo. >>%server%\bak.bak 
echo %n%%u%说: >>%server%\bak.bak 
echo %a% >>%server%\bak.bak 
echo ─────────────────── >>%server%\bak.bak 
cls 
echo. 
:s 
echo 对方: 
echo ────────────────────────────────────── 
type %server%\%n%.user 
if ERRORLEVEL 1 cls&echo 暂无留言 
echo ────────────────────────────────────── 
echo 1.刷新    2.回复   3.用户列表  4.查看聊天记录  5.查看对方信息 6.下线 
echo ────────────────────────────────────── 
echo. 
set s= 
set /p s= 请选择: 
if "%s%"=="1" goto s 
if "%s%"=="2" goto a 
if "%s%"=="3" goto l 
if "%s%"=="4" goto j 
if "%s%"=="5" goto info 
if "%s%"=="6" goto exit 
goto s 
:j 
cls 
echo. 
type %server%\bak.bak 
echo ────────────────────────────────────── 
pause 
goto s 
cls 
:info 
cls 
type %server%\%u%.info 
if ERRORLEVEL 1 cls&echo 对方不在线 
echo. 
echo ────────────────────────────────────── 
pause 
goto s 
cls 
:exit 
del /f/q %server%\%n%.info 
del /f/q %server%\%n%.user 
exit