5 способов отправить данные на COM-порт из командной строки в Windows
На этой странице приведены пять практических способов отправки данных через последовательный (COM) порт из командной строки Windows. Каждое решение включает примечания по настройке и примеры.
В1: Могу ли я отправить простой текст напрямую, используя перенаправление (echo > COMx)?
Да. Windows поддерживает перенаправление вывода на COM-порт. Перед отправкой задайте параметры COM-порта (скорость, четность, биты данных, стоповые биты, управление потоком) с помощью команды mode. Пример:
Настройка порта:
mode COM3: BAUD=9600 PARITY=N DATA=8 STOP=1
Отправка текста:
echo Hello, device! > COM3
Примечания: Этот метод отправляет текстовую строку (с завершающими символами CR+LF в зависимости от команды echo). Для передачи двоичных байтов используйт метод ниже. Если вы получаете ошибку "Отказано в доступе" (Access denied), убедитесь, что порт не открыт в другом приложении и вы запустили командную строку с соответствующими правами.

В2: Как отправить бинарные данные или файл в COM порт из командной строки (cmd.exe)?
Используйте команду copy /b для отправки бинарного файла напрямую в COM порт. Пример:
Настройка порта:
mode COM3: BAUD=115200 PARITY=N DATA=8 STOP=1
Отправка двоичного файла:
copy /b mydata.bin COM3
Для отправки текстового файла без преобразования также используйте copy /b. Этот метод отправляет байты файла в точности так, как они есть в файле. Чтобы дописать (добавить) в вывод вместо перезаписи, используйте type myfile >> COM3, но только после того, как убедитесь в правильном поведении порта.

В3: Как отправить данные на последовательный порт с помощью PowerShell (лучший контроль, байты и скрипты)?
PowerShell может использовать класс .NET System.IO.Ports.SerialPort для точного контроля. Примеры простых небольших скриптов:
Открыть, отправить текст, закрыть (в одной строке):
powershell -NoProfile -Command "$p=New-Object System.IO.Ports.SerialPort 'COM1',9600,'None',8,one;$p.Open();$p.WriteLine('Hello from PowerShell');$p.Close()"
Отправить байты из шестнадцатеричного (hex) массива:
powershell -NoProfile -Command "$p=New-Object System.IO.Ports.SerialPort 'COM3',9600,'None',8,one;$p.Open();$buf=([byte[]] (0x02,0x10,0x03));$p.Write($buf,0,$buf.Length);$p.Close()"
Преимущества: полный контроль над скоростью, четностью и тайм-аутами, а также возможность считывать ответы. Используйте скрипты для сложных последовательностей и обработки ошибок.
В4: Использование специализированной небольшой утилиты для Windows для отправки нескольких байтов и символов.
Бесплатная утилита RS232Switch позволяет настроить COM порт и отправить небольшую HEX- или ASCII-команду из одной командной строки. Главное преимущество - скорость запуска, к тому же она работает во всех операционных системах Windows. Эта программа была разработана для управления AV-процессорами, коммутаторами и проекторами через порт RS232. Если вам нужно отправить несколько сообщений, вы можете вызывать эту утилиту из пакетного (bat) файла.
rs232switch.exe [/DEBUG] [/COM 1] [/MODE 9600,8N1] [/ASCII|HEX|HEX2] data_to_send /COM - port number (optional, default = 1) /MODE - COM port mode (optional, default = baud rate: 9600, data bits: 8, no parity, 1 stop bit) /DEBUG - enable debug messages (optional, default = off) /ASCII - ASCII characters only /HEX - Mixed ASCII and HEX data (default, e.g.: #01data#02) /HEX2 - 2-byte HEX data (e.g.: 01020304FF03) Example: rs232switch /COM 3 /MODE 115200,8N1 #02hello#03
В5: Что делать, если мне нужно больше функций (отправка в hex, логирование, графический интерфейс)?
Используйте сторонние инструменты, такие как Serial Port Monitor. Вы можете отправлять файлы и данные из командной строки; кроме того, программа имеет интерфейс для написания скриптов для отправки набора байт, изменения скорости передачи данных и проведения интерактивных сеансов. Этот метод дает вам больше гибкости, чем простое перенаправление в командной строке (например, можно вручную настроить окончание строки, аппаратное управление потоком, управляющие символы для программного управления потоком, задать быстрые команды для отправки, использовать экраны HEX и ASCII представления данных и т. д.).

Общие советы и устранение неполадок при отправке данных через последовательный порт
- Всегда настраивайте параметры связи COM порта перед отправкой (используйте команду mode или методы на базе API).
- Закрывайте порт после отправки, чтобы разрешить доступ другим приложениям.
- Используйте режим администратора, если это требуется политикой системы или драйверами устройств.
- Если требуются отправить двоичные данные, избегайте команд, которые выполняют преобразование текста (например, обычный echo).
- Если вы сомневаетесь, посмотрите в Диспетчере устройстве или используя другие методы, чтобы узнать назначенный номер COM порта.
Выберите метод, который соответствует вашим потребностям: простой текст (echo/copy), точный программный контроль (PowerShell/.NET или Python) или продвинутые инструменты с пользовательским интерфейсом и максимальным набор опций и функций.
Смотрите также
Сканер COM порта
5 частых ошибок при работе с COM портом в Windows
Узнать COM порт приложения или посмотреть все COM порты в Windows
COM порт не работает в Windows
Как протестировать COM порт в Windows
5 способов отправить данные на COM-порт из командной строки в Windows
Как добавить устройство COM порта на компьютер с Windows
Advanced Serial Port Monitor, связанные темы:
здесьАнализатор RS232 Сниффер RS232 порта Последовательный интерфейс RS232: разводка и сигналы Кабели мониторинга данных