Get ChildItem - PowerShell


Overview

Get-ChildItem retrieves a collection of child items (files, folders, symlinks, etc.) contained within a specified path or drive. It enables users to explore the contents of directories, list files, and perform various operations on the retrieved items.

Syntax

Get-ChildItem [-Path] <ItemPath> [[-Credential] <PSCredential>] [-Filter] <String> [-ErrorAction] <Action>
[-Exclude] <String[]> [-Include] <String[]> [-Recurse] [-Force] [-Hidden] [-NotHidden] [-LiteralPath] <String>
[-Depth <UInt32>] [-Directory] [-File] [-Link] [-SkipHidden] [-SkipReadOnly] [-AcceptPipelineInput]
[-PassThru] [-ExcludeSimpleItems] [-ExcludeFilter] <String[]> [-NoClobber] [-WhatIf] [<CommonParameters>]

Options/Flags

  • -Path : Specifies the path to the directory or drive from which to retrieve child items.
  • -Credential : Provides credentials for accessing the specified path if necessary.
  • -Filter : Filters the results to only include items that match the specified pattern.
  • -ErrorAction : Controls how errors are handled.
  • -Exclude <String[]>: Excludes child items matching the specified patterns.
  • -Include <String[]>: Includes only child items matching the specified patterns.
  • -Recurse: Retrieves child items from all subdirectories recursively.
  • -Force: Overwrites existing items if necessary.
  • -Hidden: Includes hidden items in the results.
  • -NotHidden: Excludes hidden items from the results.
  • -LiteralPath : Interprets the specified path as a literal path, bypassing alias resolution.
  • -Depth : Specifies the maximum depth of recursion when -Recurse is used.
  • -Directory: Only retrieves directories.
  • -File: Only retrieves files.
  • -Link: Only retrieves symbolic links.
  • -SkipHidden: Excludes hidden items from the results, even when -Hidden is specified.
  • -SkipReadOnly: Excludes read-only items from the results.
  • -AcceptPipelineInput: Accepts pipeline input as the source path.
  • -PassThru: Returns the retrieved child items as output objects.
  • -ExcludeSimpleItems: Excludes simple items (drives, files, directories) from the results.
  • -ExcludeFilter <String[]>: Excludes items based on the specified filter criteria.
  • -NoClobber: Prevents overwriting existing items.
  • -WhatIf: Performs a simulation of what would happen without actually modifying anything.

Examples

Example 1: List all files in the current directory

Get-ChildItem

Example 2: Retrieve all subdirectories in “C:\Users” recursively

Get-ChildItem -Path "C:\Users" -Recurse -Directory

Example 3: Filter files by extension and name

Get-ChildItem -Path "C:\Documents" -Filter "*.txt" -Include "*Important*"

Example 4: Pass child items to a pipeline

Get-ChildItem | Format-Table -AutoSize

Common Issues

  • Access denied: Ensure you have sufficient permissions to access the specified path.
  • Path not found: Verify that the specified path exists and is accessible.
  • Unexpected results: Check the filter and exclusion criteria to ensure they align with your expectations.

Integration

Get-ChildItem can be integrated with other commands to perform various tasks:

  • List files and their properties: Get-ChildItem -Path "C:\Users" | Select-Object Name, LastWriteTime, Length
  • Search for files in multiple directories: (Get-ChildItem -Path "C:\Users\*\Documents").FullName