How Can I Delete a Folder or File from the Command Line Using Windows PowerShell?
In this Ask the Admin, I’ll show you how to use Windows PowerShell to delete one or multiple folders from the command line.
Use PowerShell to Delete a Single File or Folder
Let’s start by running a simple command to delete a single file or folder. Make sure you are logged in to the server or PC with an account that has full access to the objects you want to delete.
- Open a PowerShell prompt by switching to the Start screen and typing PowerShell. In the search results, make sure PowerShell is highlighted and press Enter.
- In the PowerShell console, type Remove-Item –path c:\testfolder –recurse and press Enter, replacing c:\testfolder with the full path to the folder you want to delete.
The –recurse parameter will allow PowerShell to remove any child items without asking for permission. Additionally, the –force parameter can be added to delete hidden or read-only files.
- To check the folder has been deleted, type dir c: in the command prompt and press Enter, replacing c: with the parent directory of the folder you just deleted.
More Complex Delete Operations
In the PowerShell prompt, type Remove-Item –path c:\testfolder\ remove-item * -include *.mp3 –recurse and press Enter. This command removes all MP3 files from the testfolder directory and any subdirectories.
It’s also possible to include a filter, like this:
Remove-Item –path c:\* -Filter *test* -whatif
Any folder in the root of the C drive with the word test in its name will be deleted. The –whatif parameter tests the command and lets you see the results, so you can be sure you won’t delete anything important. To actually run the delete operation, just remove the –whatif parameter.
Remove-Item –path c:\testfolder\* -include *.txt
The above command will remove all .txt files in the testfolder directory. There is also an –exclude parameter, which comes in handy when used in combination with filters. Finally, to specify the current directory as shown in the PowerShell prompt, just replace the –path parameter with a wildcard symbol as follows:
Remove-Item * -Filter *test*