标题: 局域网聊天的批处理,能学到绝大多数批处理命令。
[打印本页]
作者: jellord
时间: 2007-4-3 12:10
标题: 局域网聊天的批处理,能学到绝大多数批处理命令。
以下是我写的局域网聊天的工具程序,虽说没有太大价值,但其中用到了多数的批处理命令,包括一些重要命令和难度较大的命令,发出来,希望学习批处理的新朋友会喜欢,相信对大家学习和理解相关批处理命令是很有价值的。这是修改后的版本
@echo off
title 局域网聊天工具
color 1f
MODE con: COLS=54 lines=34
:choose
cls
echo\
echo ┏━━━━━━━━━━━━━━━━━━━┓
echo ┃ ┃
echo ┃ 局域网聊天工具 ┃
echo ┃ copyright by jellord ┃
echo ┗━━━━━━━━━━━━━━━━━━━┛
echo\
echo.
echo ===============================================
echo.
echo 使用本软件您必须确保您的计算机已经启动了
echo windows信使服务,否则请按照以下方法开启:
echo.
echo 1.在运行框中输入net start messenger;
echo 2.在控制面板中进入管理工具, 然后进入
echo 服务程序, 找到messenger服务并启动之。
echo.
echo ===============================================
echo.
set /p choose=请选择(1/退出程序启动信使服务;2/继续):
if /i "%choose%"=="1" goto
if /i "%choose%"=="2" goto 2
echo.
echo. ---------输入错误,请重试!----------&&echo.&&pause&&goto choose
:2
if exist ip.txt del /q ip.txt
cls
echo\
echo ┏━━━━━━━━━━━━━━━━━━━┓
echo ┃ ┃
echo ┃ 局域网聊天工具 ┃
echo ┃ copyright by jellord ┃
echo ┗━━━━━━━━━━━━━━━━━━━┛
echo\
echo 正在扫描局域网在线用户,请稍等...
echo.
echo /////////////////////////////////////////////////////
echo IP 计算机名
setlocal enabledelayedexpansion
net view|find "\\">lan.txt
for /f "usebackq" %%j in ('lan.txt') do (
if "%%~zj"=="0" (
echo 对不起,目前没有活跃用户在线!&&echo 对不起,目前没有活跃用户在线!
>ip.txt
) else (
for /f "tokens=1" %%i in (lan.txt) do (
set co=%%i
set co=!co:\\=!
ping -w 1 -n 1 !co!|find /I "!co!">ping.txt
for /f "tokens=2,3 delims= " %%a in (ping.txt) do if not "%%b"=="could" echo %%b
%%a
for /f "tokens=2,3 delims= " %%a in (ping.txt) do if not "%%b"=="could" echo %%b
%%a >>ip.txt
)
)
)
if exist lan.txt del /q lan.txt&if exist ping.txt del /q ping.txt
echo.
echo /////////////////////////////////////////////////////
echo 以上显示的是目前局域网内的在线用户
echo.
rem ============================================================================================
rem 以上斜线之间部分也可以用下面的代码实现同样的功能,同时还不会产生临时性的文本文件。
rem setlocal enabledelayedexpansion
rem net view|find "\\">nul||echo 对不起,目前没有活跃用户在线!||echo 对不起
,目前没有活跃用户在线!>ip.txt
rem for /f "tokens=1" %%i in ('net view ^| find "\\"') do (
rem set co=%%i
rem set co=!co:\\=!
rem for /f "tokens=2,3 delims= " %%a in ('ping -w 1 -n 1 !co! ^| find /I "!co!"') do if not
%%b"=="could" echo %%b %%a
rem for /f "tokens=2,3 delims= " %%a in ('ping -w 1 -n 1 !co! ^| find /I "!co!"') do if not
%%b"=="could" echo %%b %%a>>ip.txt
rem )
rem pause
rem ============================================================================================
:user
set /p u=请选择对方的计算机名或ip(注意大小写):
echo.
type ip.txt|find "%u%">nul||echo. -----------输入不在扫描结果中,请重试!------------&&goto p
type ip.txt|find "%u%">nul&&goto main
:p
echo.
set /p l=请选择(1/坚持发送;回车返回):
if "%l%"=="" echo.&goto user
if "%l%"=="1" goto main
echo.
goto user
:main
cls
echo.
echo ┏━━━━━━━━━━━━━━━━━━━┓
echo ┃ 1: 发送信息 3: 重新选择发送对象 ┃
echo ┃ 2: 查看聊天记录 4: 重新扫描局域网 ┃
echo ┃ 0: 退出程序 ┃
echo ┗━━━━━━━━━━━━━━━━━━━┛
echo.
echo 您当前正在和 %u% 聊天中...
echo.
set c=
set /p c=请做出您的选择:
if /i "%c%"=="4" del /q ip.txt&cls&goto 2
if /i "%c%"=="3" cls&&echo.&&echo 上次扫描的在线用户显示如下
:&&echo.-----------------------------------------------------&&type ip.txt&&echo.&&goto user
if /i "%c%"=="0" if exist ip.txt del /q ip.txt&goto
if /i "%c%"=="2" goto 3
if /i "%c%"=="1" goto work
echo \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
echo 您的选择不正确!
echo 请重新选择
echo \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
pause
goto main
:work
cls
echo.-----------------------------------------------------
echo.
echo 您当前正在和 %u% 聊天中...
echo.
echo 聊天过程中可以按回车键返回上级菜单
echo.
echo.-----------------------------------------------------
set m=
set /p m=请输入你将要发送的信息:
echo.
echo.
if "%m%"=="" (
goto main
) else (
echo 你于%date% %time%对%u%说: %m%>>messege.txt
echo.正在发送信息,请稍等...
net send %u% %m%
pause
goto work
)
:3
echo.-----------------------------------------------------
set /p t=请选择(1/当前窗口显示;2/新建窗口显示):
if "%t%"=="1" goto t
if "%t%"=="2" goto s
echo -----------------------------------------------------
echo 错误的选择!
goto 3
:t
cls
echo.-----------------------------------------------------
type messege.txt|more&pause
goto main
:s
start messege.txt
goto main
[
Last edited by jellord on 2007-4-5 at 08:50 PM ]
作者: binghuochanmian
时间: 2007-4-3 12:45
果然很强,只是会不会太烦琐了一点?
作者: flyinspace
时间: 2007-4-3 15:13
呵呵,windows给我们提供了netmeeting 。
为什么不用呢?
作者: jellord
时间: 2007-4-4 09:39
上面已经说的很清楚了,写这个的目的是学习实践批处理的相关命令,希望能给初学者一个好的案例材料。至于有其他的软件可以使用,不在我写该代码的考虑范围之内。
作者: hwhan525
时间: 2007-4-4 09:57
谢谢,楼主提供的学习样本!!初学者很需要这样的东西!!
作者: htysm
时间: 2007-4-16 05:30
这样的好帖子居然沉了。
作者: juventusryp
时间: 2007-4-16 06:27
好东西,我支持一下,可以学习下
作者: tongwandou
时间: 2007-4-22 05:09
拿 回 去 研 究 一 下, 谢 谢 楼 主!!!
作者: zhjipt
时间: 2007-4-22 08:07
支持............支持
作者: aibo28
时间: 2007-4-22 12:51
已经收藏了。感谢。学习不少
作者: jashonx
时间: 2007-4-24 09:28
值得研究!
Sample Text
作者: huangxiaohao
时间: 2007-10-11 21:45
支持,楼主辛苦了
作者: Nickey
时间: 2007-10-12 00:45
学习...ing
你的广告可不可以去掉呢?
作者: putao
时间: 2007-10-12 11:04
标题: 下了~回去研究,谢谢
下了~回去研究,谢谢
作者: mygoldnet
时间: 2007-10-12 21:20
Quote: |
Originally posted by jellord at 2007-4-4 09:39 AM:
上面已经说的很清楚了,写这个的目的是学习实践批处理的相关命令,希望能给初学者一个好的案例材料。至于有其他的软件可以使用,不在我写该代码的考虑范围之内。 |
|
太有用了,加到批处理局域网五子棋中就很好。
五子棋要用共享文件夹,要产生文件,还不能聊天。
作者: hdzc
时间: 2007-10-24 22:29
好东西太有用了
作者: provem
时间: 2007-11-14 08:56
标题: 不错
我觉可以在开头再加入两条批处理
sc config messenger start= auto
net start Messenger
这可以在启动程序的时候开启Messenger服务
作者: provem
时间: 2007-11-14 08:57
标题: 不能用
好像扫描完局域网后就自动退出程序了,是哪里有问题呢?
作者: wyangwo
时间: 2007-11-23 10:28
好帖子,不错
作者: che11n
时间: 2007-11-26 00:03
对初学者来说的确实用..
作者: huahua0919
时间: 2007-11-26 10:19
研究研究!
作者: mrxuanfeng
时间: 2007-12-5 12:18
18楼说的是呀,运行完就推出了,是不是哪里有纰漏????
作者: nanhui112
时间: 2007-12-15 12:09
我一按2 就一闪 --! 什么原因阿
作者: nanhui112
时间: 2007-12-15 12:18
呵呵 我可能知道原因拉 我在cmd下 net view
作者: nanhui112
时间: 2007-12-15 12:19
呵呵 我可能知道原因拉 我在cmd下 net view 列表是空的
是不是这原因阿 我太菜拉
作者: hxwxyz
时间: 2007-12-15 12:50
学习了
作者: xjj2007
时间: 2008-4-1 03:51
标题: 好就顶
虽然这是句废话,但我还是要说:顶!
作者: goofy123
时间: 2008-4-1 17:05
复制完毕
好好拜读下~
谢谢分享
作者: tt518
时间: 2008-4-1 21:43
好东西~
作者: p1509101
时间: 2008-4-2 18:21
呵呵 还可以啦
作者: imyours
时间: 2008-4-17 05:04
可惜大部分人都关了net send...
作者: aliang10520
时间: 2008-4-17 09:25
D
作者: awolf99
时间: 2008-4-17 10:49
不错,不错!
作者: wxcute
时间: 2008-4-17 13:01
”批处理局域网五子棋“
15楼能不能把这个给我拷份