dos下MSG命令使用详解

(编辑:jimmy 日期: 2024/12/23 浏览:2)

最近在编写FTP上传数据的批处理时,需要用到局域网内传输数据来提示错误,突然想起忘了N久没用的命令(net send),  结果在win7 下cmd运行net send /"Hello"      ----------------->    运行成功,弹出消息对话框。

2.然后再进行局域网内两台电脑通信验证。  MSG /server:192.168.1.201 * "Hello"    ---------->  运行失败,报错。获取会话名称时的错误 1722。

3.再次百度,在CSDN的一个帖子上有一个办法,CMD内regedit修改注册表HKEY_LOCAL_MACHINE\SYSTEM\CURRENTCONTROLSET\CONTROL\TERMIMAL SERVER内的ALLOWREMOTERPC的值修改为1 (默认为0),因为在XP系统下net send 命令需要开启Messenger信使服务,但是在win7内没有此项服务,所以需要修改注册表来使win7系统可以局域网内发送信息,可XP类似。

4.此时验证还是失败,把测试电脑和本机的防火墙全部关闭,把测试电脑的注册表同上也修改OK, 再次验证     MSG /server:192.168.1.201 * "Hello"运行失败,报错   192.168.1.201不存在或连接失败。。。最后找来找去,用GOOGLE 搜索发现了最终的答案 。。打开控制面板,双击凭据管理器,点击添加windows凭据,第一行写测试电脑的IP地址,第二行写测试电脑的用户名,第三行写测试电脑的密码,重启电脑,运行--cmd-------MSG /server:192.168.1.201 * "Hello" ------------->   运行成功。。。
Google 搜索的最终答案(英文的,有点英文基础可以看懂的) 链接:http://social.technet.microsoft.com/Forums/windows/en-US/344aa708-5477-46f9-be4f-ad8b3b2348b0/sending-a-message-to-win-7-host-with-msgexe"将消息发送到会话 Console,显示时间 60"
"发送到会话 Console 的消息收到用户响应"
等信息, 表示操作过程和结果的信息给输出来)
/w
等待来自用户的、指出该消息已收到的确认信息。如果用户不立即响应,则使用 /time:seconds 参数避免可能出现的长时间延迟。将此参数与 /v 一同使用也很有帮助。
message
待发送消息的正文。如果没有键入任何消息,则系统将提示您输入消息或从标准输入 (STDIN)中读取该消息。要发送包含在文件中的消息,请键入小于号 (<) 后接文件名称。
/?
在命令提示符显示帮助。
MS-DOS命令注释
如果不指定该用户或会话的名称,则 msg 将显示错误消息。指定会话的名称时,必须是有效名称。
用户必须有发送消息的权限才能发送消息。

MS-DOS命令范例

要向用户 MIKES 的所有会话发送标题为 Let's meet at 1PM today 的消息,请键入:

msg MIKES Let's meet at 1PM today

要向会话 MODEM02 发送相同的消息,请键入:

msg modem02 Let's meet at 1PM today

要向会话 12 发送消息,请键入:

msg 12 Let's meet at 1PM today

要向包含在文件 USERLIST中的所有会话发送消息,请键入:

msg @userlist Let's meet at 1PM today

要向已登录的所有用户发送消息,请键入:

msg * Let's meet at 1PM today

要在确认超时(例如 10 秒)限制内向所有用户发送消息,请键入:

msg * /TIME:10 Let's meet at 1PM today