Edit: "Re-answered" after question clarification
De acordo com a Microsoft (não consigo encontrar a seção Using command redirection operators do Windows mais recente do que XP):
Duplicating handles
The & redirection operator duplicates output or input from one specified handle to another specified handle. For example, to send dir output to File.txt and send the error output to File.txt, type:
dir>c:\file.txt 2>&1
When you duplicate a handle, you duplicate all characteristics of the original occurrence of the handle. For example, if a handle has write-only access, all duplicates of that handle have write-only access. You cannot duplicate a handle with read-only access into a handle with write-only access.
Então, boas notícias são:
- Você pode alterar
<COM4 >COM4 2>COM4para<COM4 >&1 2>&1.
Más notícias são:
- Você está misturando requisitos de acesso somente de leitura
<COM4e somente>&1 2>&1somente para gravação e está alterandoAccess DeniedparaThe handle could not be duplicated during redirection of handle 1.
Se você mudar:
-
<COM4 >&1 2>&1to>COM4 2>&1 <&1(somente leitura e somente gravação ainda são misturadas), o que funciona e dá a vocêSTDOUTeSTDERR, masSTDINainda parece ser * quebrado. (*) Eu fiz alguns testes, mas parece queSTDINnão funciona ...
No entanto, posso ver uma solução para corrigi-lo:
- Use o
com0comnull-modem emulator e defina 3 pares de portas virtuais:-
COM_O-COM_O4paraSTDOUT; -
COM_E-COM_E4paraSTDERR; -
COM_I-COM_I4paraSTDIN.
-
-
Crie um hub serial com
hub4com.exe(com0compart) deCOM_O4,COM_E4,COM_I4eCOM4:-
hub4com.exe --route=0:1 --route=2,3:0 --baud=19200 --data=8 --parity=no --stop=1 --octs=off --odsr=off --ox=off --ix=off --idsr=off --ito=0 \.\COM4 \.\COM_I4 \.\COM_E4 \.\COM_O4 - Lembre-se de configurar os parâmetros de transmissão adequados (você próprio):
--baud...
-
-
E
<\.\COM_I >\.\COM_O 2>\.\COM_Eforma linha de comando.
Finalmente, para:
hub4com.exe --route=0:1 --route=2,3:0 --octs=off \.\COM4 \.\COM_I4 \.\COM_E4 \.\COM_O4
e:
cmd <\.\COM_I >\.\COM_O 2>\.\COM_E
você tem uma linha de comando do Windows em COM4 on 19200 8N1 ...