5

我正在尝试使用批处理文件从 COM 端口自动检索数据。

我能够配置 com 端口并发送命令以向我的设备询问信息。

问题是我无法捕获设备发送的数据。我已经尝试使用 RealTerm 并且设备正在工作并将信息发送回 pc,但我真的需要批处理文件来自动完成,这里是代码:

echo off

MODE COMxx ...

COPY retrievecommand.txt \\\\.\COMxx:

COPY \\\\.\COMxx: data.txt

有什么建议么?

4

2 回答 2

1

在递归循环中使用 TYPE 命令,对 DOS LABEL 使用 DOS GOTO 命令。使用 'append output' 来捕获像 TYPE COM1:>>Data.txt 这样的文本 双 > 意味着不断地连接(或附加)到 Data.txt。单个 > 或“重定向输出”将在每个循环中替换 Data.txt 中的文本(如果端口上存在 com 数据)。添加重定向到监视器屏幕的第二行,以便您也可以观看活动(即 TYPE COM1:>CON [CON 表示控制台或监视器屏幕,但您可以省略它,因为控制台是默认设置])

TYPE 命令不需要 Control-Z。它只会不断地转储文本,直到操作员执行 Control-C 然后执行 Y 来中断循环。除非您一起完成了批处理文件,否则您真的不需要停止循环。Data.txt 文件将可供其他程序实时使用,并且如果您在此批处理文件仍在循环时尝试使用其他程序(如 NOTEPAD.EXE)访问它,则不会出现“共享冲突”。

此外,如果您在批处理文件中的第 3 行显示 TYPE COM1:>Data1.txt [注意只有一个重定向],您将拥有一行即时文本,该行将在下一次迭代中消失。但有时如果您只需要一行数据,这会很有帮助。使用 DOS FIND 命令可以将一行数据提取到另一个文本文件中。

于 2014-09-13T17:49:01.677 回答
0

读取时,该COPY命令将继续执行,直到检测到文件结尾。由于源是一个设备(具有潜在的无限流),它只知道在检测到文件结束标记时停止。这是 Ctrl-Z (0x1A) 字符。

使用命令阅读的重复问题中的建议TYPE很可能导致相同的问题。

没有读取单行的标准机制。如果您可以将应用程序移植到 PowerShell,您应该能够读取具有预期结果的单行代码。

于 2014-02-11T20:13:34.307 回答