Powershell script to remove text from each file in a directory.
*In Linux-Unix SED works very well for this.
POWERSHELL “Sed like”
Using variables to recurse a directory cheating using set-content to work like
regular expression
#remove a character from all files in a directory -=
#REMOVE
#var old is text to remove
$old = ','
#var $new = the text you want to replace ( I am replacing text with
# a blank space)
$new = ''
#change the Get-ChildItem to a folder or your choice
Get-ChildItem C:\scripts\files\ -Recurse | Where {$_ -IS [IO.FileInfo]} |
% {
(Get-Content $_.FullName) -replace $old,$new | Set-Content $_.FullName
Write-Host "----- WORKING ----------"
Write-Host "Processed: " + $_.FullName
}
#REMOVE DONE
—– WORKING ———-
Processed: + c:\scripts\files\.txt
Processed: + c:\scripts\files\file1.txt
Processed: + c:\scripts\files\txt-159_2-5.txt
Processed: + c:\scripts\files\extf\ile0_0_140-159_6-10.txt
Processed: + c:\scripts\files\extftxt60-179_11-15.txt
Processed: + c:\scripts\files\extftxt60-179_2-5.txt
Processed: + c:\scripts\files\extftxt60-179_6-10.txt
Processed: + c:\scripts\files\txt122-188_11-15.txt
Processed: + c:\scripts\files\txt122-188_2-5.txt
Processed: + c:\scripts\files\txt122-188_6-10.txt
Processed: + c:\scripts\files\txt120-139_11-15.txt
Processed: + c:\scripts\files\txt120-139_2-5.txt
Processed: + c:\scripts\files\txt120-139_6-10.txt
Processed: + c:\scripts\files\txt140-159_11-15.txt
Processed: + c:\scripts\files\txt140-159_2-5.txt
Processed: + c:\scripts\files\txt140-159_6-10.txt
Processed: + c:\scripts\files\txt160-179_11-15.txt
Processed: + c:\scripts\files\txt160-179_2-5.txt
Processed: + c:\scripts\files\txt160-179_6-10.txt
No comments yet.