📖 Scenario: You are organizing files in a folder on your computer. You want to list all files and folders inside a specific directory to see what is there.
🎯 Goal: Build a PowerShell script that lists all items in a folder using Get-ChildItem.
📋 What You'll Learn
Create a variable with the folder path
Create a variable to hold the listing options
Use Get-ChildItem with the path and options
Print the list of items
💡 Why This Matters
🌍 Real World
Listing files and folders is a common task when managing files on your computer or server.
💼 Career
Knowing how to use Get-ChildItem helps in automation scripts for system administration and file management.
Progress0 / 4 steps
1
Set the folder path
Create a variable called $folderPath and set it to 'C:\Users\Public\Documents'.
PowerShell
Hint
Use single quotes for the path string and double backslashes to escape.
2
Set the listing options
Create a variable called $options and set it to @{ Recurse = $false; File = $true; Directory = $true } to list files and folders without recursion.
PowerShell
Hint
Use a hashtable to set options for Get-ChildItem.
3
Get the list of items
Use Get-ChildItem with -Path $folderPath and the options -Recurse:$options.Recurse, -File:$options.File, and -Directory:$options.Directory. Store the result in a variable called $items.
PowerShell
Hint
Use the -Recurse, -File, and -Directory parameters with values from $options.
4
Display the list of items
Print the variable $items to display the list of files and folders.
PowerShell
Hint
Use Write-Output $items to print the list.
Practice
(1/5)
1. What does the PowerShell command Get-ChildItem do by default?
easy
A. Lists all files and folders in the current directory
B. Deletes all files in the current directory
C. Creates a new folder in the current directory
D. Moves files to another directory
Solution
Step 1: Understand the command purpose
Get-ChildItem is used to list contents of a directory, including files and folders.
Step 2: Check default behavior
By default, it lists all files and folders in the current directory without deleting, creating, or moving anything.
Final Answer:
Lists all files and folders in the current directory -> Option A
Quick Check:
Get-ChildItem lists files/folders = A [OK]
Hint: Remember: Get-ChildItem lists, it does not delete or move [OK]
Common Mistakes:
Thinking it deletes files
Confusing it with file creation commands
Assuming it moves files automatically
2. Which of the following is the correct syntax to list only files (not folders) in the current directory using Get-ChildItem?
easy
A. Get-ChildItem -File
B. Get-ChildItem -Directory
C. Get-ChildItem -Folder
D. Get-ChildItem -ListFiles
Solution
Step 1: Identify the parameter for files only
The -File parameter filters output to show only files.
Step 2: Verify other options
-Directory lists only folders, -Folder and -ListFiles are invalid parameters.
Final Answer:
Get-ChildItem -File -> Option A
Quick Check:
-File lists files only = B [OK]
Hint: Use -File to list files, -Directory for folders [OK]
Common Mistakes:
Using -Directory to list files
Using invalid parameters like -Folder
Confusing parameter names
3. What will be the output of this command if the current directory contains two files: file1.txt, file2.log and one folder Docs?
Get-ChildItem -File
medium
A. Lists only the folder Docs
B. Lists file1.txt, file2.log, and Docs
C. Lists file1.txt and file2.log only
D. No output
Solution
Step 1: Understand the -File parameter effect
The -File parameter filters output to show only files, excluding folders.
Step 2: Apply to given directory contents
Given files file1.txt and file2.log will be listed; folder Docs will be excluded.
Final Answer:
Lists file1.txt and file2.log only -> Option C
Quick Check:
-File excludes folders = C [OK]
Hint: Remember -File shows files only, no folders [OK]
Common Mistakes:
Expecting folders to appear with -File
Confusing files and folders in output
Assuming -File lists everything
4. You run this command but get an error:
Get-ChildItem -Recurse -File -Folder
What is the problem?
medium
A. Get-ChildItem does not support -File parameter
B. The -Recurse parameter is invalid
C. The command is missing a path argument
D. You cannot use both -File and -Folder together
Solution
Step 1: Check parameter compatibility
-Folder is not a valid parameter; the correct parameter for folders is -Directory. Also, -File and -Directory cannot be used together because they filter mutually exclusive items.
Step 2: Identify the error cause
Using -File and -Folder together causes a parameter conflict error.
Final Answer:
You cannot use both -File and -Folder together -> Option D
Quick Check:
-File and -Directory are exclusive = A [OK]
Hint: Use either -File or -Directory, not both together [OK]
Common Mistakes:
Using -Folder instead of -Directory
Trying to combine -File and -Directory
Assuming -Recurse causes the error
5. You want to list all files with extension .txt in the current directory and all its subdirectories. Which command should you use?
hard
A. Get-ChildItem -Filter *.txt
B. Get-ChildItem -Recurse -File -Filter *.txt
C. Get-ChildItem -Recurse -Directory -Filter *.txt
D. Get-ChildItem -File -Filter *.txt
Solution
Step 1: Include subdirectories with -Recurse
To search inside all subfolders, use the -Recurse parameter.
Step 2: Filter only files with .txt extension
Use -File to list files only and -Filter *.txt to select files ending with .txt.
Final Answer:
Get-ChildItem -Recurse -File -Filter *.txt -> Option B
Quick Check:
Use -Recurse, -File, and -Filter for .txt files = D [OK]
Hint: Combine -Recurse, -File, and -Filter for specific files [OK]
Common Mistakes:
Omitting -Recurse to search subfolders
Using -Directory instead of -File
Not using -Filter for file extension
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.