issue when piping from a windows program

Marco Atzeri marco.atzeri@gmail.com
Tue Apr 11 09:02:04 GMT 2023


On 11.04.2023 09:15, Leonid Mironov via Cygwin wrote:
> I am trying to feed the output of wmic.exe - a windows console program, to cygwin bash script.
> wmic.exe produces UTF16LE output with BOM and CR/LFs, so I am using dos2unix to convert it.
> The problem is that when I write wmic.exe output to a file and then use dos2unix to convert this file
> I get the expected result - ASCII file with LFs, I get the same result when I pipe this file to dos2unix,
> but when I pipe wmic.exe output directly to dos2unix I get ASCII file with CR/LFs and an extra empty line.
> Cygwin is up to date, windows 10. What gives?
> 
> Here are the hexdumps
> 
> of 'wmic /NAMESPACE:\\\\root\\WMI PATH BatteryStatus get charging,voltage,remainingcapacity,chargerate>file'
> 

use "iconv" to change the codification and than d2u for the line termination


$ iconv -f UTF16 -t UTF8 file
ChargeRate  Charging  RemainingCapacity  Voltage
0           FALSE     0                  0

$ iconv -f UTF16 -t UTF8 file |od -c
0000000   C   h   a   r   g   e   R   a   t   e           C   h   a   r
0000020   g   i   n   g           R   e   m   a   i   n   i   n   g   C
0000040   a   p   a   c   i   t   y           V   o   l   t   a   g   e
0000060          \r  \n   0
0000100   F   A   L   S   E                       0
0000120                                                       0
0000140                          \r  \n
0000150

$ iconv -f UTF16 -t UTF8 file |d2u | od -c
0000000   C   h   a   r   g   e   R   a   t   e           C   h   a   r
0000020   g   i   n   g           R   e   m   a   i   n   i   n   g   C
0000040   a   p   a   c   i   t   y           V   o   l   t   a   g   e
0000060          \n   0                                               F
0000100   A   L   S   E                       0
0000120                                                   0
0000140                      \n
0000146



More information about the Cygwin mailing list