Hvordan kan jeg erstatte hver forekomst av en streng i en fil med PowerShell

Hvordan kan jeg erstatte hver forekomst av en streng i en fil med PowerShell

PowerShell er kraftig nok til å utføre filutforskeroperasjonene, for eksempel å kopiere, flytte, gi nytt navn eller slette en fil. Den kan lese og erstatte innholdet i en tekstfil, enten det er en streng eller et enkelt ord. Spesielt har PowerShell slike kommandoer som kan brukes til å lese og erstatte alle forekomster av en streng.

Denne opplæringen vil demonstrere et par metoder for å løse den nevnte spørringen.

Hvordan erstatte alle forekomster av en streng i en fil ved å bruke PowerShell?

Disse tilnærmingene kan brukes for å fikse den oppgitte spørringen:

  • Få innhold og sett-innhold.
  • Io.Fil.

Metode 1: Bruk metodene "Get Content" og "Set-Content" for å erstatte hver forekomst av en streng i en dokumentfil

Denne tilnærmingen bruker først "Få innhold”Cmdlet for å hente dataene i filen og bruker deretter“Sett-innhold”Cmdlet for å erstatte eller skrive den nye forekomsten eller innholdet. Spesielt "-Erstatte”Parameter brukes til å erstatte forekomsten av en streng i en fil.

Ta en titt på det gitte eksemplet for å få en grundig forståelse av det.

Eksempel

Først av alt, la oss sjekke filversjonen før vi bytter ut hver forekomst. Av den grunn, utfør "Få innhold”Cmdlet sammen med filstien:

> Get-Content C: \ Doc \ File.tekst

La oss nå erstatte ordet “Katt" med "Hund”:

> (Get Content C: \ Doc \ File.txt) -replace 'Cat', 'Dog' | Set-content c: \ doc \ fil.tekst

I henhold til kommandoen ovenfor:

  • For det første brukte vi “Få innhold”Cmdlet sammen med filstien innen den omvendte kommandoen.
  • Deretter la vi til "-Erstatte”Parameter og spesifiserte to ord atskilt med komma, der det første ordet vil bli erstattet med det andre.
  • Deretter, rørledningen “|”Brukes til å overføre utdataene til“Sett-innhold”Cmdlet som en inngang.
  • Til slutt brukes denne cmdlet sammen med filstien for å bekrefte erstatningen av strengen i en fil:

For verifiseringen, igjen, få innholdet i den valgte filen:

> Get-Content C: \ Doc \ File.tekst

Det kan observeres at ordet “Katt”Har blitt erstattet med“Hund”Vellykket.

Metode 2: Bruk “Systemet.Io.Fil "-metode for å erstatte hver forekomst/forekomst av en streng i en fil

Microsofts .Netteklasse “Fil”Brukes spesielt til å administrere filutforskeren. Spesielt spiller det en viktig rolle i å erstatte forekomsten av en streng i en fil.

Eksempel

For det første, sjekk ut innholdet i "PHP.tekst”:

> Get-Content C: \ Doc \ PHP.tekst

Kjør deretter følgende kommandoer:

> $ str = [system.Io.Fil] :: ReadAllText ("C: \ Doc \ PHP.tekst").Erstatte ("php", "python")
> [System.Io.Fil] :: WriteallText ("C: \ Doc \ PHP.txt ", $ str)

I henhold til koden ovenfor:

  • Først av alt opprettet vi en variabel og spesifiserte deretter "Io.Fil”Klasse.
  • ReadAllText ()”Metode for den nevnte klassen leser teksten i filen, mens“Erstatte()”Metode erstatter de valgte forekomstene i tekstfilen.
  • I den andre linjen har vi brukt “[System.Io.Fil] :: WriteallText ()”Metode og lagt til filbanen og deretter variabel for å erstatte den spesifiserte forekomsten i filen:

La oss sjekke om ordet er erstattet eller ikke. Til

> Get-Content C: \ Doc \ PHP.tekst

Ordet "PHP”Har blitt erstattet med“Python”Vellykket.

Konklusjon

Med PowerShell kan hver forekomst/forekomst av en streng i en fil erstattes ved hjelp av to metoder, inkludert "Få innhold”Og“Sett-innhold”Og“System.Io.Fil”. Begge metodene henter først tekstfilen og erstatt deretter det spesifiserte ordets forekomst i den tekstfilen. Dette innlegget har presentert en grundig guide for å løse det uttalte problemet.