找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 26369|回复: 8

[文本处理] 【已完成】自制批处理日志方面的疑问

[复制链接]
发表于 2015-10-2 14:24:25 | 显示全部楼层 |阅读模式
本帖最后由 chouxia 于 2015-10-3 14:32 编辑

现在有N个批处理可能会同时运行,为了记录运行状态,我在每个批处理中用echo  xxxx >>log.txt这样的方式将我需要的日志内容写入文件。
这样的方法优点是代码比较简单。缺点是echo写入的时候txt有一瞬间txt文件被锁定。
现在有一个问题,在txt被锁定的一瞬间,别的bat会写日志失败。
而echo我不知道是否有errorlevel。
所以来请教下,有什么靠谱的方法来实现日志写入嘛?
发表于 2015-10-2 18:33:19 | 显示全部楼层
wait…
这几天正好在折腾这个小工程,有空发上来

评分

参与人数 1技术 +1 收起 理由
chouxia + 1 乐于助人

查看全部评分

发表于 2015-10-2 20:33:55 | 显示全部楼层
这么说分开log可能会好些
发表于 2015-10-3 06:43:49 | 显示全部楼层
试试用这个:http://www.bathome.net/viewthread.php?tid=37531

启用一个服务器,之后用本机任何一个进程都能通过该服务器端统一写入日志,因为 JavaScript 是通过事件轮询机制来实现单线程运行的,所以不会发生同时写入的情况。
  1. @echo off

  2. start cmd /c "node.exe Bridge.js server 192.168.0.* >日志.log 2>&1"
  3. ::创建一个服务器端,默认监听端口为 8848,默认管理员 IP 为 127.0.0.1
  4. ::IP 为 192.168.0.* 的用户均可接入,但不能进行风险操作

  5. node.exe Bridge.js log Text FileName
  6. ::客户端命令服务器端记录一条日志,内容为 Text,保存在 FileName.log 中
复制代码
服务器只需启用一次

评分

参与人数 1技术 +1 收起 理由
chouxia + 1 乐于助人

查看全部评分

 楼主| 发表于 2015-10-3 13:21:42 | 显示全部楼层
楼上的 你解决了我全部脚本的日志问题。
我的所有服务器都可以写日志了。
但是还有一个问题。
如果我需要分别写几个日志怎么办?
 楼主| 发表于 2015-10-3 13:24:09 | 显示全部楼层
本帖最后由 chouxia 于 2015-10-3 13:27 编辑

CrLf
你看我的理解对不对
开机的时候执行start cmd /c "node.exe Bridge.js server 192.168.0.* >日志.log 2>&1"
就好。
这个“日志.log”可以不是我想写入内容的文件。
正式写入内容的时候我可以用node.exe Bridge.js log Text FileName来随意写。 FileName是可以随便换的?
如果是多个网段通讯呢?改成192.168.*.*?
发表于 2015-10-3 13:40:31 | 显示全部楼层
本帖最后由 CrLf 于 2015-10-3 13:43 编辑

回复 6# chouxia


    server 端输出的只是运行时产生的关键信息回显(就是你给的例子中输出到日志.txt 的内容),仅用于观察服务器端的运行状态,真正的日志由客户端的 log 命令发布,默认保存在 Bridge_服务器端启动时间.log 中,当然你也可以用 log 命令的第二参数自定义文件名
多网段通讯可以写成:
  1. node bridge.js server 192.168.*.*
复制代码
更精确一点可以这样:
  1. node bridge.js server 192.168.1.* 192.168.2.*
复制代码

评分

参与人数 1技术 +1 收起 理由
chouxia + 1 感谢分享

查看全部评分

 楼主| 发表于 2015-10-3 14:03:32 | 显示全部楼层
回复 7# CrLf


    客户端运行的时候不需要制定server端的ip吗?
看了你提供的帖子。发现没有客户端是否需要指定服务器ip的说明
发表于 2015-10-3 14:19:33 | 显示全部楼层
回复 8# chouxia


    忘了说明,非本机的客户端要这样:
  1. node bridge.js 192.168.0.100 log 日志内容 日志名[可选]
  2. ::连接 IP 为 192.168.0.100 的服务器,默认使用 8848 端口
复制代码

评分

参与人数 1技术 +1 收起 理由
chouxia + 1 感谢分享

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 14:18 , Processed in 0.019741 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表