How do I return a custom object in Powershell that’s formatted as a table?

Question:

I’m pretty new to powershell, so I won’t be surprised at all if I’m going about this all wrong. I’m trying to create a function that, when executed, prints results formatted as a table. Maybe it would even be possible to pipe those results to another function for further analysis.

Here’s what I have so far. This is a simple function that iterates through a list of paths and collects the name of the directory and the number of items in that directory, putting the data in a hashtable, and returning an array of hashtables:

That seems straightforward enough. However, when I go run the command, this is what I get:

What I want is this:

I could just hack my function to use a write statement, but I think there must be a much better way to do this. Is there a way to get the data formatted as a table, even better if that can be such that it can be piped to another method?

Answer:

How ’bout using

That would return an object whose properties match the items in the hashtable. Then you can use the built-in powershell formatting cmdlets to make it look like you want. since you only have 2 properties, it will be formatted as a table by default.

EDIT: Here’s how the whole thing would look (After the various suggestions):

Source:

How do I return a custom object in Powershell that’s formatted as a table? by licensed under CC BY-SA | With most appropriate answer!

Leave a Reply