issue when piping from a windows program
Brian Inglis
Brian.Inglis@Shaw.ca
Wed Apr 12 07:02:49 GMT 2023
On 2023-04-11 08:43, Andrey Repin via Cygwin wrote:
> Greetings, Leonid Mironov!
>
>> 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?
>
> You don't need d2u. Use `… | iconv -f UTF16LE | tr -d '\r'`
> (Don't even need -t for iconv - it assumes current locale settings as
> default source/destination encoding.)
d2u -ul converts from utf-16le to utf-8
When I run wmic under mintty or | less it looks fine to me e.g.:
$ wmic baseboard list full | less # optional
but the output could benefut from \r stripping:
$ wmic baseboard list full | tr -d '\r' | cat -A | less
https://learn.microsoft.com/en-us/windows/whats-new/deprecated-features#deprecated-features
The WMIC tool is deprecated in Windows 10, version 21H1 and the 21H1 General
Availability Channel release of Windows Server. This tool is superseded by
Windows PowerShell for WMI.
https://learn.microsoft.com/en-us/powershell/scripting/learn/ps101/07-working-with-wmi
--
Take care. Thanks, Brian Inglis Calgary, Alberta, Canada
La perfection est atteinte Perfection is achieved
non pas lorsqu'il n'y a plus rien à ajouter not when there is no more to add
mais lorsqu'il n'y a plus rien à retirer but when there is no more to cut
-- Antoine de Saint-Exupéry
More information about the Cygwin
mailing list