我正在尝试使用批处理文件自动从 COM 端口检索数据。
我可以配置 com 端口并以其他方式发送命令以向我的设备询问信息。
问题是我无法捕获设备发送的数据。我尝试过使用 RealTerm,设备正在工作并将信息发送回电脑,但我确实需要批处理文件来自动执行此操作,代码如下:
echo off
MODE COMxx ...
COPY retrievecommand.txt \\\\.\COMxx:
COPY \\\\.\COMxx: data.txt
有什么建议吗?
最佳答案
使用 DOS GOTO 命令在递归循环中使用 TYPE 命令到 DOS LABEL。使用“附加输出”捕获文本,如 TYPE COM1:>>Data.txt 双 > 表示不断连接(或附加)到 Data.txt。单个 > 或“重定向输出”将在每个循环中替换 Data.txt 中的文本(如果端口上存在 com 数据)。添加重定向到监视器屏幕的第二行,以便您也可以观看事件(即 TYPE COM1:>CON [CON 表示控制台或监视器屏幕,但您可以省略它,因为控制台是默认的])
TYPE 命令不需要 Control-Z。它会不断地转储文本,直到运算符(operator)按下 Control-C,然后按下 Y 来打破循环。除非您完成了批处理文件,否则您实际上不需要停止循环。 Data.txt 文件将可供其他程序实时使用,并且如果您在此批处理文件仍在循环期间尝试使用其他程序(如 NOTEPAD.EXE)访问该文件,则不会出现“共享冲突”。
此外,如果您在批处理文件中创建第三行,显示 TYPE COM1:>Data1.txt [仅注意一个重定向],您将得到一行即时文本,该文本将在下一次迭代时消失。但有时,如果您只需要一行数据,这会很有帮助。有一些创造性的方法可以使用 DOS FIND 命令将一行数据提取到另一个文本文件。
关于batch-file - 使用批处理文件从 COM 端口检索数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19572201/