Question:
I got the the following code from stack overflow and it works fine.
1 2 3 4 5 6 7 8 |
$TargetFolder = “Pathofyourfolder” $Files = Get-ChildItem $TargetFolder -Exclude (gc List.txt) -Recurse foreach ($File in $Files) { write-host “Deleting File $File” -foregroundcolor “Red”; Remove-Item $File | out-null } |
Now I want to delete the files with file names on the list. I tried some variations of the above such as replacing Exclude with Include but without success. Can anyone help please?
Answer:
1 2 3 4 5 |
$targetFolder = "D:\TEST_123" $fileList = "D:\DeleteList.txt" Get-ChildItem -Path "$targetFolder\*" -Recurse -Include @(Get-Content $fileList) | Remove-Item -Verbose |
For
-Include
to work you should specify \*
at the end of a folder name and filename with extension in your deletion list. The code above works for me, deleting only specified files in folder and all of its subfolders.
I also used -Verbose
instead of foreach
and Write-Host
.