“Cmdlets return objects not text, making it easier to access specific components of the returned object”

This is for me the key value of shells like PowerShell.

Uncountable billions of person hours have been wasted parsing the text output of common *nix commands. It’s time to move away from the “everything is text with random formatting” philosophy.

Or make it flexible:

> libxo - A Library for Generating Text, XML, JSON, and HTML Output

* https://github.com/Juniper/libxo/

* https://wiki.freebsd.org/LibXo

Want structure? Ask for JSON or XML and parse. Otherwise it's the regular text output.