Du kan behöva konvertera dina strängar till en enda rad för att ersätta dem
- Att skriva PowerShell-skript kan vara oerhört användbart för att automatisera uppgifter, men att behöva söka överallt för att ersätta flera rader text kan vara svårt.
- Med några få kommandon visar vi dig hur du uppnår detta utan att behöva använda ytterligare verktyg.
XINSTALLERA GENOM ATT KLICKA PÅ LADDA FILEN
- Ladda ner DriverFix (verifierad nedladdningsfil).
- Klick Starta skanning för att hitta alla problematiska drivrutiner.
- Klick Uppdatera drivrutiner för att få nya versioner och undvika systemfel.
- DriverFix har laddats ner av 0 läsare denna månad.
Windows PowerShell är ett av de mest kraftfulla kommandoradsverktygen i operativsystemet. Problemet är dock att användarna har liten eller ingen information om dess omfattande förmågor. Till exempel kan PowerShell hitta och ersätta flera rader text i en fil.
Detta är bra för många saker, inklusive att ändra din kodbas över flera filer. I den här artikeln kommer vi att förklara hur du ersätter flera textrader i en fil med PowerShell.
Varför måste jag ersätta flera rader i PowerShell?
Flera rader i PowerShell är ett utmärkt sätt att göra dina skript mer läsbara. De är också användbara när du vill använda ett påstående på flera rader men inte vill dela upp det i flera påståenden.
I programmering betyder flera rader att skriva ett enda kommando eller en instruktion på två eller flera rader.
Du kanske undrar varför vi skulle behöva flera linjer. Den mest uppenbara anledningen är för läsbarheten och för att undvika misstag när du skriver långa kommandon ett efter ett.
Vi kan använda flera rader när vi har mer än ett kommando att köra samtidigt. Det gör vår kod mer läsbar och lättare att förstå för andra.
Även om allt detta är bra, föredrar vissa användare att ersätta flera rader i PowerShell. Det är inte svårt att byta ut en rad åt gången, men det blir svårt och tidskrävande när det gäller att byta ut flera rader samtidigt.
Hur ersätter jag en linje i PowerShell?
Ersätt-operatorn i PowerShell är ett praktiskt sätt att ersätta en sträng med en annan sträng. Om du till exempel vill ersätta alla instanser av ordet "test" med ordet "examen", kan du använda följande kommando:
PS> "test" -Ersätt "test", "examen"
Ersätt-metoden har två parametrar:
- Söksträng som du vill hitta.
- Ersättningssträng som du vill använda istället för söksträngen.
Från exemplet ovan kan du redan se att det kommer att ta tid om du skulle hitta och byta ut flera rader.
För att ersätta flera rader måste du använda kommandot Regex. PowerShell regex-kommandot har två parametrar:
- Match – Låter dig ange ett mönster att söka efter i inmatningssträngen. Du kan också ange flera mönster separerade med kommatecken.
- Byta ut – Ersätter alla förekomster av den angivna matchningen med det angivna ersättningsvärdet.
Det har dock vissa begränsningar. Det kan bara ersätta den första förekomsten av en matchning inom en linje. Lösningen blir att konvertera din kod till en flerradssträng.
När du konverterar den kommer PowerShell att behandla hela inmatningen som en enda sträng vilket gör det lättare att ersätta.
1. Konvertera sträng
- Slå Windows Nyckeltyp PowerShell i sökfältet och klicka Kör som administratör.
- Du kan använda den råa omkopplaren för att konvertera flera rader till en sträng i PowerShell. När du använder -raw-växeln måste du ange filnamnet.
- Till exempel, för att konvertera, skulle du använda följande kommando:
Get-Content C:\user\test1.txt -Raw
- Detta inkluderar filplatsen och filnamnet.
2. Matchsträng
Matchningsparametern är utformad för att hitta ett eller flera tecken som matchar ett specificerat mönster.
Om du till exempel vill hitta alla ord som börjar med "c" i din sträng, kan du använda följande kommando:
[regex]::matches("c*") | where-object{$_ -like "*c*"}
- Hur man enkelt kringgår Netflix lösenordsdelning
- Vad är Mobsync.exe och hur man inaktiverar det
- Hur man aktiverar Windows Update i registret [Snabbsteg]
3. Byt ut linjer
När du har hittat matchningarna där du vill ersätta, kan du utföra kommandot ersätt enligt följande:
PS> [regex]::Replace($str, "c", "d")
PowerShells hitta och ersätt-metod kan vara mycket användbar för mer tekniska användare. Förhoppningsvis har vi med det här inlägget fått en ganska solid genomgång av hur man hittar och ersätter en enda rad med hjälp av PowerShell-prompten.
Vi vet nu att det kan utföras relativt enkelt och att kommandostrukturen inte är så svår att följa. Om du är nybörjare ger övning färdighet.
Andra användbara PowerShell-parametrar som du kan vara intresserad av inkluderar KraftShelvete ErrorAction, som vi har diskuterat i detalj.
De Try-Catch block kan också vara värt din tid, speciellt om du vill fånga några fel i din kod.
Lägg gärna till dina egna tips om annan användbar information som vi kan ha utelämnat.
Har du fortfarande problem? Fixa dem med det här verktyget:
SPONSRAD
Vissa förarrelaterade problem kan lösas snabbare genom att använda ett dedikerat verktyg. Om du fortfarande har problem med dina drivrutiner är det bara att ladda ner DriverFix och få den igång med några få klick. Efter det, låt det ta över och fixa alla dina fel på nolltid!