Working with files and folders - PowerShell (2024)

  • Article

Navigating through PowerShell drives and manipulating the items on them is similar to manipulatingfiles and folders on Windows disk drives. This article discusses how to deal with specific file andfolder manipulation tasks using PowerShell.

Listing all files and folders within a folder

You can get all items directly within a folder using Get-ChildItem. Add the optional Forceparameter to display hidden or system items. For example, this command displays the direct contentsof PowerShell Drive C:.

Get-ChildItem -Path C:\ -Force

The command lists only the directly contained items, much like using the dir command in cmd.exeor ls in a UNIX shell. To show items in subfolder, you need to specify the Recurse parameter.The following command lists everything on the C: drive:

Get-ChildItem -Path C:\ -Force -Recurse

Get-ChildItem can filter items with its Path, Filter, Include, and Excludeparameters, but those are typically based only on name. You can perform complex filtering based onother properties of items using Where-Object.

The following command finds all executables within the Program Files folder that were last modifiedafter October 1, 2005 and that are neither smaller than 1 megabyte nor larger than 10 megabytes:

Get-ChildItem -Path $env:ProgramFiles -Recurse -Include *.exe | Where-Object -FilterScript { ($_.LastWriteTime -gt '2005-10-01') -and ($_.Length -ge 1mb) -and ($_.Length -le 10mb) }

Copying files and folders

Copying is done with Copy-Item. The following command backs up your PowerShell profile script:

if (Test-Path -Path $PROFILE) { Copy-Item -Path $PROFILE -Destination $($PROFILE -replace 'ps1$', 'bak')}

The Test-Path command checks whether the profile script exists.

If the destination file already exists, the copy attempt fails. To overwrite a pre-existingdestination, use the Force parameter:

if (Test-Path -Path $PROFILE) { Copy-Item -Path $PROFILE -Destination $($PROFILE -replace 'ps1$', 'bak') -Force}

This command works even when the destination is read-only.

Folder copying works the same way. This command copies the folder C:\temp\test1 to the new folderC:\temp\DeleteMe recursively:

Copy-Item C:\temp\test1 -Recurse C:\temp\DeleteMe

You can also copy a selection of items. The following command copies all .txt files containedanywhere in C:\data to C:\temp\text:

Copy-Item -Filter *.txt -Path c:\data -Recurse -Destination C:\temp\text

You can still run native commands like xcopy.exe and robocopy.exe to copy files.

Creating files and folders

Creating new items works the same on all PowerShell providers. If a PowerShell provider has morethan one type of item—for example, the FileSystem PowerShell provider distinguishes betweendirectories and files—you need to specify the item type.

This command creates a new folder C:\temp\New Folder:

New-Item -Path 'C:\temp\New Folder' -ItemType Directory

This command creates a new empty file C:\temp\New Folder\file.txt

New-Item -Path 'C:\temp\New Folder\file.txt' -ItemType File

Important

When using the Force switch with the New-Item command to create a folder, and the folderalready exists, it won't overwrite or replace the folder. It will simply return the existingfolder object. However, if you use New-Item -Force on a file that already exists, the fileis overwritten.

Removing all files and folders within a folder

You can remove contained items using Remove-Item, but you will be prompted to confirm theremoval if the item contains anything else. For example, if you attempt to delete the folderC:\temp\DeleteMe that contains other items, PowerShell prompts you for confirmation beforedeleting the folder:

Remove-Item -Path C:\temp\DeleteMe
ConfirmThe item at C:\temp\DeleteMe has children and the Recurse parameter wasn'tspecified. If you continue, all children will be removed with the item. Are yousure you want to continue?[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help(default is "Y"):

If you don't want to be prompted for each contained item, specify the Recurse parameter:

Remove-Item -Path C:\temp\DeleteMe -Recurse

Mapping a local folder as a drive

You can also map a local folder, using the New-PSDrive command. The following command creates alocal drive P: rooted in the local Program Files directory, visible only from the PowerShellsession:

New-PSDrive -Name P -Root $env:ProgramFiles -PSProvider FileSystem

Just as with network drives, drives mapped within PowerShell are immediately visible to thePowerShell shell. To create a mapped drive visible from File Explorer, use the Persistparameter. However, only remote paths can be used with Persist.

Reading a text file into an array

One of the more common storage formats for text data is in a file with separate lines treated asdistinct data elements. The Get-Content cmdlet can be used to read an entire file in one step,as shown here:

Get-Content -Path $PROFILE# Load modules and change to the PowerShell-Docs repository folderImport-Module posh-gitSet-Location C:\Git\PowerShell-Docs

Get-Content treats the data read from the file as an array, with one element per line of filecontent. You can confirm this by checking the Length of the returned content:

PS> (Get-Content -Path $PROFILE).Length3

This command is most useful for getting lists of information into PowerShell. For example, you mightstore a list of computer names or IP addresses in the file C:\temp\domainMembers.txt, with onename on each line of the file. You can use Get-Content to retrieve the file contents and put themin the variable $Computers:

$Computers = Get-Content -Path C:\temp\DomainMembers.txt

$Computers is now an array containing a computer name in each element.

Working with files and folders - PowerShell (2024)

References

Top Articles
Dave Ramsey ‘Cult-Like’ Lawsuit Dismissed; Class-Action Suit Remains
17 Genius Money-Saving Challenges That'll Change Your Life
Spectrum Gdvr-2007
Wordscapes Level 5130 Answers
How To Be A Reseller: Heather Hooks Is Hooked On Pickin’ - Seeking Connection: Life Is Like A Crossword Puzzle
Rainbird Wiring Diagram
How Much Is 10000 Nickels
Ribbit Woodbine
Our History | Lilly Grove Missionary Baptist Church - Houston, TX
Employeeres Ual
Anki Fsrs
DIN 41612 - FCI - PDF Catalogs | Technical Documentation
4Chan Louisville
Sport Clip Hours
Hssn Broadcasts
Methodist Laborworkx
Cooktopcove Com
ocala cars & trucks - by owner - craigslist
Meritas Health Patient Portal
Guilford County | NCpedia
Bx11
Aaa Saugus Ma Appointment
Hdmovie 2
Aps Day Spa Evesham
Raz-Plus Literacy Essentials for PreK-6
Delectable Birthday Dyes
What we lost when Craigslist shut down its personals section
Mia Malkova Bio, Net Worth, Age & More - Magzica
Kempsville Recreation Center Pool Schedule
The value of R in SI units is _____?
Amici Pizza Los Alamitos
Wow Quest Encroaching Heat
Weekly Math Review Q4 3
Goodwill Thrift Store & Donation Center Marietta Photos
Wednesday Morning Gifs
oklahoma city community "puppies" - craigslist
SOC 100 ONL Syllabus
Game8 Silver Wolf
Nancy Pazelt Obituary
Daly City Building Division
This 85-year-old mom co-signed her daughter's student loan years ago. Now she fears the lender may take her house
Silive Obituary
Obituaries in Hagerstown, MD | The Herald-Mail
Newsweek Wordle
Www Craigslist Com Atlanta Ga
Advance Auto.parts Near Me
Dontrell Nelson - 2016 - Football - University of Memphis Athletics
Waco.craigslist
The Jazz Scene: Queen Clarinet: Interview with Doreen Ketchens – International Clarinet Association
CPM Homework Help
Plasma Donation Greensburg Pa
Phunextra
Latest Posts
Article information

Author: Maia Crooks Jr

Last Updated:

Views: 6071

Rating: 4.2 / 5 (43 voted)

Reviews: 82% of readers found this page helpful

Author information

Name: Maia Crooks Jr

Birthday: 1997-09-21

Address: 93119 Joseph Street, Peggyfurt, NC 11582

Phone: +2983088926881

Job: Principal Design Liaison

Hobby: Web surfing, Skiing, role-playing games, Sketching, Polo, Sewing, Genealogy

Introduction: My name is Maia Crooks Jr, I am a homely, joyous, shiny, successful, hilarious, thoughtful, joyous person who loves writing and wants to share my knowledge and understanding with you.