PDA

Показать полную графическую версию : messenger для локальной сети на bat


systemroot
30-01-2011, 13:16
@echo off
title messenger
sc config messenger start= auto
net start messenger
color 79
chcp 1251
mode con: cols=80 lines=25
set /P list="Enter IP: "
:eof
set /P text="Enter a message: "
net send %list% %text%
call:eof

amel27
30-01-2011, 17:41
вместо IP можно вводить имя хоста... а если в сети развернут WINS-сервер, то можно сваять батник и для отправки по имени пользователя

systemroot
30-01-2011, 17:54
а если в сети развернут WINS-сервер, то можно сваять батник и для отправки по имени пользователя »
можно код батника?

amel27
31-01-2011, 05:51
systemroot,
есть два способа обращения к WINS: штатной командой NETSH и через утилиту NBLOOKUP (http://support.microsoft.com/kb/830578)

1-й способ требует как минимум членства пользователя в группе "WINS users" сервера, я уже постил (http://forum.oszone.net/post-895310-9.html) код с использованием этого метода, когда у меня были такие права, теперь политика безопасности у нас сменилась и адаптировать его под текущую задачу нет возможности

пример кода для 2-го способа:
@echo off

set /p host="Enter Host IP or User Name:"
set /p text="Enter text message:"

for /f "tokens=2*" %%a in (
'nblookup /x 03 %host%^|Find "IP Address"'
) do ping -n 1 %%b >nul&& net send %%b "%text%"

NiOl
04-02-2011, 18:07
Шутки ради - покапался в старых запасниках - и "оно" нашлось! Когда на работе винда обновилась до SP2 (или это уже был sp3?) некоторые вещи, например net send, оказались недоступными... с батниками я тогда почти не возился - про нововведения не слышал, а старых возможностей явно не хватало... но повозившись денек на отладке запустил свой "офисный чат" - занятие оказалось вполне веселое но приходилось от тормознутости чистить "хистори" - ибо когда набиралось с десяток килобайт новые сообщения появлялись по несколько секунд и сильно "отвлекали" скроллингом от работы.
* особой гордостью было решение отслеживания изменений в чате... сейчас я бы просто проверил дату/время файла...

Вобщем запустил, проверил - работает ;)

Chat.bat:
@Echo off
rem Chat Send [msg] (* = выход)

set Svr=\\192.168.0.2\tmp\Chat.txt
set Lock=C:\ChatLock.tmp
set Msg=%date% %time% %UserName%:

if "%1"=="~~" goto View
if "%1"=="*" if "%2"=="" goto Quit

if exist %Lock% goto GetMsg
echo Erase Me!>%Lock%
copy nul %Lock%2>nul
start /low "Chat" %0 ~~

:GetMsg
if "%1"=="" goto Send
set Msg=%Msg% %1
shift
goto GetMsg

:Send
echo %Msg%>>%Svr%
goto End

:Quit
del %lock%
goto :End

:View
rem Выходить надо по звездочке, иначе окно просмотра само не откроется. См. Lock-файл!
if not exist %Lock% goto Finish
rem Ждем изменений в чате
dir %Svr%>%Lock%1
fc /b %Lock%1 %Lock%2 >nul
if not errorlevel 1 goto View
del %Lock%2 >nul
ren %Lock%1 *.???2 >nul
cls
type %Svr%
echo 
goto View

:Finish
del %Lock%*>nul

:End




© OSzone.net 2001-2012