Replace a changing string in a text file

Hi,

I have script, which fetches a text file (which is a script of a database) into a variable.  Here is a portion of that script:
$DBScriptFile = $Path[0] + $dbname + '\01-DB-' + $dbname + '-' + $Date + '.sql'
$string = Get-Content $DBScriptFile

Inside the file I have strings like:
SIZE = 76288MB
FILEGROWTH = 512MB

I need to replace them with:
SIZE = 1024KB
FILEGROWTH = 1024KB

The problem is, those numbers may be different, e.g.:
SIZE = 10000KB
FILEGROWTH = 2048KB

So I need to replace everything which looks like:
SIZE = XYZB
FILEGROWTH = XYZB
with:
SIZE = 1024KB
FILEGROWTH = 1024KB

Any ideas?

Thanks

Parents
No Data
Reply
  • You could match just on the "SIZE = " and "FILEGROWTH =" and replace the whole line since the lines are different, but the text to be inserted is basically static. Example:

    Get-Content C:\text.txt | ForEach-Object{
    If($_ -match "SIZE\s="){
    "SIZE = 1024KB"
    }ElseIf($_ -match "FILEGROWTH\s="){
    "FILEGROWTH = 1024KB"
    }Else{
    $_
    }
    } | Set-Content C:\text.txt

     

Children
No Data