powershellpowershell-5.0powershell-v6.0

How is the efficiency of Test-Path affected by using the -PathType parameter?


Does using the -PathType argument to specify a Leaf or Container have any impact on the efficiency of the Test-Path cmdlet?

More an academic question as I can't imagine any gain here being anything other than negligible.


Solution

  • At a high level, specifying -PathType Leaf adds slight overhead to the Test-Path operation because it has to test 2 things rather than one - that the item exists and that it's not a container.

    In the end, the performance impact depends heavily on the underlying provider. The FileSystem provider is pretty quick to determine whether an existing item is a container type, but there's no guarantee that that's the case for all providers - it comes down to the nature of the underlying data store and implementation details