- PowerShell giver dig mulighed for nemt at oprette, ændre og administrere tekst- og binære filer ved hjælp af specifikke cmdlets.
- kommandoer Som f.eks. Set-Content, Add-Content og Out-File tilbyder forskellige måder at skrive eller tilføje information til filer på, og tilpasser sig den enkelte brugers behov.
- PowerShells integration med .NET-objekter og muligheden for at arbejde med finjusterede tilladelser udvider filhåndteringens alsidighed betydeligt.
Være i stand til at skrive, ændre og manipulere filer fra PowerShell Det er en grundlæggende færdighed for både systemadministratorer og enhver bruger, der stræber efter at automatisere processer i Windows. PowerShell-konsollen er ikke bare et alternativ til den klassiske kommandoprompt; er et komplet scriptingmiljø hvilket åbner dørene for avanceret og effektiv filhåndtering, tilpasset både simple og mere komplekse opgaver.
Lær de vigtigste kommandoer og teknikker til at arbejde med filer fra PowerShell vil give dig mulighed for at gå langt ud over de grundlæggende funktioner, der tilbydes af den grafiske brugerflade. Nedenfor finder du en detaljeret og opdateret guide til de mest alsidige cmdlets og metoder til at skrive til tekst- og binære filer, samt praktiske eksempler og buenos Tricks for at optimere din hverdag med PowerShell.
Indstillinger for at skrive til filer med PowerShell
PowerShell har adskillige cmdlets og metoder til generere filer, redigere deres indhold og manipulere dem efter dine behov. De mest anvendte og nyttige til disse opgaver er:
- sæt-indhold: Skriver eller erstatter indholdet af en fil.
- Tilføj-indholdTilføjer yderligere indhold til slutningen af en fil uden at fjerne det, den allerede indeholder.
- Ud-arkivOmdirigerer outputtet fra en hvilken som helst kommando til en fil.
- StreamWriter og andre .NET-metoder – til situationer, der kræver mere kontrol.
Hver af disse cmdlets har interessante parametre og nuancer til forskellige scenarier, som vi vil udforske i detaljer i løbet af denne artikel.
Set-Content: Skriv eller overskriv filer
cmdlet'en sæt-indhold Det er nok mest direkte, når målet er opret en fil eller overskriv dens nuværende indholdDens grundlæggende brug er ret intuitiv:
Set-Content -Path "C:\ruta\archivo.txt" -Value "Texto que quiero introducir"
Hvis filen allerede findes, vil denne kommando erstatte den fuldstændigt med den nye tekst. Hvis filen ikke findes, oprettes den automatisk på den angivne placering.
Det er også nemt at arbejde med flere linjer. For eksempel, for at gemme et array med flere strenge i en ny fil, skal du blot:
$contenido = @("Primera línea", "Segunda línea", "Tercera línea")
Set-Content -Path "C:\ruta\archivo.txt" -Value $contenido
Hvert element i arrayet skrives på en separat linje., hvilket letter oprettelsen af strukturerede filer.
Tilføj indhold: Tilføj oplysninger til slutningen af en fil
Når du har brug for det tilføje data til en eksisterende fil uden at slette den gamle, cmdlet'en Tilføj-indhold er den perfekte mulighed. Dens syntaks minder meget om Set-Content:
Add-Content -Path "C:\ruta\archivo.txt" -Value "Nueva línea al final"
Denne kommando indsætter teksten i slutningen af filen og bevarer alt det oprindelige indhold. Den er især nyttig til behandling af logfiler, logs eller indsamle information trinvis.
Hvis du vil tilføje flere linjer, kan du gøre det ved at sende et array, som vist tidligere.
Ud-fil: Omdirigeringskommando Output
Out-File cmdlet'en skiller os ud, når vi vil gemme direkte outputtet fra enhver kommando eller script i en filDet er meget nyttigt, hvis du f.eks. vil gemme en liste, en rapport eller resultatet af en kompleks proces:
Get-Process | Out-File -FilePath "C:\ruta\procesos.txt"
I dette tilfælde Det, der normalt ses på skærmen, gemmes i filen, med respekt for formatet og linjerne, som de vises i konsollen.
Som standard overskriver Out-File destinationsfilen., men du kan bruge parameteren -Tilføj Sådan tilføjer du oplysninger uden at slette de tidligere oplysninger:
Get-Date | Out-File -FilePath "C:\ruta\log.txt" -Append
Derudover kan du angive filkodningen ved hjælp af parameteren -Indkodning eller tvungen oprettelse med -Kraft.
Sammenligning mellem Set-Content, Add-Content og Out-File
Det er almindeligt at forveksle disse tre cmdlets, men hver især er designet til specifikke situationer:
- sæt-indhold: nyttig til at definere eller fuldstændigt erstatte indholdet af en fil.
- Tilføj-indholdPerfekt når du bare vil tilføje tekst uden at ændre det, der allerede findes.
- Ud-arkivIdeel til omdirigering af resultater fra komplekse scripts eller kommandoer.
Et vigtigt trick er at kombinere Udstreng med disse cmdlets, hvis du har brug for at konvertere objektoutput til tekst, før du skriver det, især med Set-Content:
Get-Process | Out-String | Set-Content -Path "C:\ruta\procesos.txt"
Praktiske eksempler på skrivning og omdirigering i filer
Lad os se på nogle almindelige eksempler og praktiske situationer, som du hurtigt kan løse:
- Opret en ny tekstfil:
New-Item -Path "C:\ejemplo\nuevo.txt" -ItemType File
- Tøm indholdet af en fil, men behold den:
Clear-Content -Path "C:\ejemplo\log.txt"
- Tilføj testtekst:
"Este es un ejemplo" | Add-Content -Path "C:\ejemplo\nuevo.txt"
- Erstat et ord i hele filen:
(Get-Content .\archivo.txt).replace('buscar', 'reemplazo') | Set-Content .\archivo.txt
Husk at bruge jokertegn (*) til at arbejde med flere filer på én gang.for eksempel:
Get-Content C:\ejemplo\*.txt | Out-File -FilePath C:\ejemplo\resumen.txt
Avanceret håndtering: Skrivning af filer med StreamWriter og .NET
Til opgaver, der kræver mere kontrol, såsom at skrive binære data, håndtere usædvanlige kodninger eller behandle store mængder, kan du bruge klassen System.IO.StreamWriter fra .NET:
$sw = [System.IO.StreamWriter]::new('C:\ruta\archivo.txt')
$sw.WriteLine('Texto específico o datos binarios')
$sw.Close()
Denne metode giver dig yderligere fleksibilitet, hvilket er særligt nyttigt i avancerede scripts eller når du har brug for at tilpasse outputstrømmen.
Arbejde med tilladelser og beskyttede filer
Nogle gange kan det være nødvendigt oprette filer med specifikke tilladelser eller ændre en fils ACL. PowerShell og .NET gør dette nemt ved at kombinere cmdlets og objekter. For eksempel, for at tildele fuld kontrol til en domænebruger:
$archivo = New-Item -Path "C:\ruta\archivo.txt" -ItemType "File"
$acl = Get-Acl $archivo.FullName
$permiso = "dominio\usuario","FullControl","Allow"
$accessRule = New-Object System.Security.AccessControl.FileSystemAccessRule $permiso
$acl.SetAccessRule($accessRule)
Set-Acl $archivo.FullName $acl
På denne måde kan du sikre, at din fil ikke blot oprettes og skrives korrekt, men også er beskyttet og har de korrekte tilladelser.
Yderligere administration: Læs, rediger og slet filer
Filhåndtering i PowerShell er ikke kun begrænset til indtastning. Du kan:
- Læs indhold med Get-Content:
Get-Content -Path "C:\ruta\archivo.txt"
- Sletning af filer med Remove-Item:
Remove-Item -Path "C:\ruta\archivo.txt"
- Kopier eller flyt filer med Copy-Item og Move-Item da du har brug for at omorganisere mapper.
- Filtrer resultater ved hjælp af jokertegn, selektorer og parametre kun at arbejde på de ønskede filer.
Automatisering og manipulation af store datamængder
En af de største fordele ved PowerShell er, at letter automatiseringen af processer med scripts. Har du brug for at flette indholdet af flere filer sammen til en ny? Bruger:
Get-Content C:\carpeta\*.txt -Exclude resumen.txt | Set-Content C:\carpeta\resumen.txt
Eller for at tilføje resultatet af en specifik søgning til flere filer:
Select-String "palabra clave" C:\carpeta\*.txt | Out-File -FilePath C:\carpeta\resultados.txt
Og hvis du støder på blokeringer med uendelige løkker eller processer, der aldrig slutter, skal du huske, at du kan afbryde udførelsen ved at trykke på Kontrol + C på konsollen.
Andre nyttige værktøjer og genveje i PowerShell
Efterhånden som du bliver fortrolig med dine omgivelser, vil du opdage praktiske genveje, såsom:
- Automatisk fuldførelse med Tab-tasten for filstier eller kommandoer.
- Hent tidligere brugte kommandoer med op/ned-pilene.
- Arbejd hurtigt med flere mapper ved hjælp af Push-Location (pushd) og Pop-Location (popd).
- Pipe-output mellem forskellige cmdlets ved hjælp af symbolet | (rør), for eksempel:
Get-Content archivo.txt | Measure-Object -Word -Line -Character
Oversigt over cmdlets og ækvivalenser
PowerShell fokuserer på konsistens i navngivningskonventionerne for "Verbum-Nominal" på tværs af cmdlets, hvilket gør dem nemmere at lære. Her er de vigtigste kommandoer, du bør huske:
Cmdlet | Alias | Primær brug |
---|---|---|
Set-Content |
sc |
Skriv/erstat indhold |
Add-Content |
ac |
Tilføj indhold til sidst |
Out-File |
— | Omdirigeringskommandoens output |
Get-Content |
gc |
Læs indhold |
Remove-Item |
rm |
Slet filer/mapper |
New-Item |
ni |
Opret filer og mapper |
Clear-Content |
— | Tomme filer |
Mange af disse cmdlets har kortere aliasser eller endda Bash-ækvivalenter, hvilket gør overgangen nemmere, hvis du har tidligere erfaring med andre systemer.
Avanceret skrivning: Eksport af data og strukturerede filer
Ikke alt er almindelig tekst. Hvis du har brug for det eksportér strukturerede data, såsom tabeller eller objekterPowerShell giver dig cmdlets som f.eks. Eksport-Csv:
$datos = @( @{Nombre='Juan';Edad=30}, @{Nombre='Ana';Edad=25} )
$datos | Export-Csv -Path "C:\datos.csv" -NoTypeInformation
På denne måde kan du generere CSV-filer, der er kompatible med Excel og andre værktøjer, hvilket udvider de praktiske anvendelser af PowerShell inden for systemadministration og dataanalyse betydeligt.
Mestre PowerShell-kommandoer til at skrive inde i filer Det giver dig mulighed for at udvide mulighederne for at administrere og automatisere opgaver på Windows-systemer. Fra simple tekstfiler til komplekse rapporter eller logfiler, alt er inden for rækkevidde af konsollen og et par cmdletsLidt efter lidt vil arbejdet med PowerShell blive en naturlig del af din rutine, hvilket sparer dig tid og giver dig mulighed for at udføre opgaver med præcision og kraft.
Passioneret forfatter om bytes-verdenen og teknologien generelt. Jeg elsker at dele min viden gennem skrivning, og det er det, jeg vil gøre i denne blog, vise dig alle de mest interessante ting om gadgets, software, hardware, teknologiske trends og mere. Mit mål er at hjælpe dig med at navigere i den digitale verden på en enkel og underholdende måde.