Ved hjelp av PowerShell vil jeg erstatte alle eksakte forekomster av [MYID]
i en gitt fil med MyValue
. Hva er den enkleste måten å gjøre det på?
Bruk (V3-versjon):
(Get-Content c:\temp\test.txt).replace('[MYID]', 'MyValue') | Set-Content c:\temp\test.txt
Eller for 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
Legg merke til parentesene rundt (Get-Content file.txt)
er påkrevd:
Uten parentesen leses innholdet, en linje om gangen, og flyter nedover rørledningen til det når ut-fil eller sett-innhold, som prøver å skrive til den samme filen, men den er allerede åpen med get-content, og du får en feil. Parentesen fører til at operasjonen av innholdslesing utføres en gang (åpne, lese og lukke). Først når alle linjene er lest, sendes de en om gangen, og når de når den siste kommandoen i rørledningen, kan de skrives til filen. Det er det samme som $content=content; $content | hvor ...