Met behulp van PowerShell, wil ik alle exacte occurrences van [MYID]
in een gegeven bestand vervangen door MyValue
. Wat is de makkelijkste manier om dit te doen?
Gebruik (V3 versie):
(Get-Content c:\temp\test.txt).replace('[MYID]', 'MyValue') | Set-Content c:\temp\test.txt
Of voor V2:
(Get-Content c:\temp\test.txt) -replace '\[MYID\]', 'MyValue' | Set-Content c:\temp\test.txt
(Get-Content file.txt) |
Foreach-Object {$_ -replace '\[MYID\]','MyValue'} |
Out-File file.txt
Let op de haakjes rond (Get-Content file.txt)
is verplicht:
Zonder de haakjes wordt de inhoud gelezen, regel voor regel, en stroomt door de pijplijn totdat het out-file of set-content bereikt, die probeert naar hetzelfde bestand te schrijven, maar het'is al geopend door get-content en je krijgt een fout. De haakjes zorgen ervoor dat de operatie van het lezen van de inhoud één keer wordt uitgevoerd (openen, lezen en sluiten). Pas dan, als alle regels gelezen zijn, worden ze één voor één gepijpt en als ze bij het laatste commando in de pijplijn komen kunnen ze naar het bestand geschreven worden. Het's hetzelfde als $content=content; $content | waar ....