#Usage powershell -executionpolicy bypass C:\SharedToAnyone\ReportsAudit\ReplaceStringInFile.ps1 "c:\Temp\DirlistDEV.txt" '.' '`,'
#Calling from VBA: Call Shell("powershell -executionpolicy bypass C:\SharedToAnyone\ReportsAudit\ReplaceStringInFile.ps1 'c:\Temp\DirlistDEV.txt' '.' ','")
Clear-Host;
$inputFile = $($args[0]);
if ($inputFile) {
Write-Host "Passed: $inputFile`n";
$index = $inputFile.IndexOf(".");
if ($index -eq 0) {
Write-Host "Input file does not have any extensions";
break;
}
} else {
Write-Host "No file passed";
break;
}
$findString = $($args[1]);
if ($findString) {
Write-Host "Passed string to find: $findString`n";
} else {
Write-Host "No string to find passed";
break;
}
$findString = $findString.Replace(".","\.");
$findString;
$Replacement = $($args[2]);
if ($Replacement) {
Write-Host "Passed replacement string : $Replacement`n";
} else {
Write-Host "No replacement string passed";
break;
}
$outputFile = $inputFile.SubString(0,$index) + ".tmp"
$outputFile;
Get-Content $inputfile | ForEach-Object { $_ -replace $findString, $Replacement } | Set-Content ($outputFile)
Remove-Item $inputfile
Rename-Item $outputFile $inputfile
If you find this script useful please donate generously.
No comments:
Post a Comment