- PowerShell kunt u eenvoudig tekst- en binaire bestanden maken, wijzigen en beheren met behulp van specifieke cmdlets.
- commando's Functies zoals Set-Content, Add-Content en Out-File bieden verschillende manieren om informatie aan bestanden toe te voegen of te schrijven, zodat ze kunnen worden aangepast aan de behoeften van elke gebruiker.
- De integratie van PowerShell met .NET-objecten en de mogelijkheid om met gedetailleerde machtigingen te werken, vergroten de veelzijdigheid van bestandsbeheer aanzienlijk.
Bestanden kunnen schrijven, wijzigen en manipuleren vanuit PowerShell Het is een fundamentele vaardigheid voor zowel systeembeheerders als voor elke gebruiker die ernaar streeft processen te automatiseren Windows. De PowerShell-console is niet alleen een alternatief voor de klassieke opdrachtprompt; is een complete scriptomgeving wat de deur opent naar geavanceerd en efficiënt bestandsbeheer, geschikt voor zowel eenvoudige als complexere taken.
Leer de belangrijkste opdrachten en technieken voor het werken met bestanden vanuit PowerShell Hiermee kunt u veel verder gaan dan de basisfunctionaliteiten van de grafische interface. Hieronder vindt u een gedetailleerde en actuele handleiding voor de meest veelzijdige cmdlets en methoden voor het schrijven naar tekst- en binaire bestanden, evenals praktische voorbeelden en buenos Tricks om uw dagelijkse leven te optimaliseren met PowerShell.
Opties voor het schrijven naar bestanden met PowerShell
PowerShell heeft verschillende cmdlets en methoden voor bestanden genereren, hun inhoud bewerken en ze naar uw behoeften manipuleren. De meest gebruikte en nuttige voor deze taken zijn:
- set-inhoud: Schrijft of vervangt de inhoud van een bestand.
- Inhoud toevoegen: Voegt extra inhoud toe aan het einde van een bestand zonder de bestaande inhoud te verwijderen.
- Uitgaand bestand: Leidt de uitvoer van een opdracht om naar een bestand.
- StreamWriter en andere .NET-methoden – voor situaties die meer controle vereisen.
Elk van deze cmdlets heeft interessante parameters en nuances voor verschillende scenario's. We zullen deze in dit artikel uitgebreid bespreken.
Set-Content: bestanden schrijven of overschrijven
De cmdlet set-inhoud Het is waarschijnlijk het meest direct als het doel is een bestand aanmaken of de huidige inhoud ervan overschrijvenHet basisgebruik ervan is vrij intuïtief:
Set-Content -Path "C:\ruta\archivo.txt" -Value "Texto que quiero introducir"
Als het bestand al bestaat, vervangt deze opdracht het volledig door de nieuwe tekst. Als het bestand niet bestaat, wordt het automatisch aangemaakt op de opgegeven locatie.
Het is ook mogelijk om eenvoudig met meerdere regels te werken. Om bijvoorbeeld een array met meerdere strings in een nieuw bestand op te slaan, doet u het volgende:
$contenido = @("Primera línea", "Segunda línea", "Tercera línea")
Set-Content -Path "C:\ruta\archivo.txt" -Value $contenido
Elk element van de array wordt op een aparte regel geschreven., waardoor het aanmaken van gestructureerde bestanden eenvoudiger wordt.
Add-Content: voeg informatie toe aan het einde van een bestand
Wanneer je nodig hebt gegevens toevoegen aan een bestaand bestand zonder het oude te verwijderen, de cmdlet Inhoud toevoegen is de perfecte optie. De syntaxis is erg vergelijkbaar met Set-Content:
Add-Content -Path "C:\ruta\archivo.txt" -Value "Nueva línea al final"
Met deze opdracht wordt de tekst aan het einde van het bestand ingevoegd, waarbij alle originele inhoud behouden blijft. Dit is vooral handig voor het verwerken van logs. logs of stapsgewijs informatie verzamelen.
Als u meerdere regels wilt toevoegen, kunt u dit doen door een array door te geven, zoals eerder getoond.
Out-File: Omleidingsopdrachtuitvoer
De Out-File-cmdlet valt op wanneer we dat willen direct de uitvoer van een opdracht opslaan of script in een bestandDit is bijvoorbeeld erg handig als u een lijst, een rapport of het resultaat van een complex proces wilt opslaan:
Get-Process | Out-File -FilePath "C:\ruta\procesos.txt"
In dit geval Wat u normaal gesproken op het scherm ziet, wordt in het bestand opgeslagen, met inachtneming van de opmaak en de regels zoals ze in de console worden weergegeven.
Standaard overschrijft Out-File het doelbestand., maar u kunt de parameter gebruiken -Toevoegen Om informatie toe te voegen zonder de vorige informatie te verwijderen:
Get-Date | Out-File -FilePath "C:\ruta\log.txt" -Append
Bovendien kunt u de bestandscodering opgeven met behulp van de parameter -Codering of forceer creatie met -Kracht.
Vergelijking tussen Set-Content, Add-Content en Out-File
Deze drie cmdlets worden vaak met elkaar verward, maar ze zijn elk ontworpen voor specifieke situaties:
- set-inhoud: handig voor het definiëren of volledig vervangen van de inhoud van een bestand.
- Inhoud toevoegen: perfect als u alleen tekst wilt toevoegen, zonder iets te veranderen aan wat er al staat.
- Uitgaand bestand: Ideaal voor het omleiden van resultaten van complexe scripts of opdrachten.
Een belangrijke truc is om te combineren Uitgaande string Gebruik deze cmdlets als u objectuitvoer naar tekst moet converteren voordat u deze schrijft, vooral met Set-Content:
Get-Process | Out-String | Set-Content -Path "C:\ruta\procesos.txt"
Praktische voorbeelden van schrijven en omleiden in bestanden
Laten we eens kijken naar enkele veelvoorkomende voorbeelden en praktische situaties die u snel kunt oplossen:
- Maak een nieuw tekstbestand:
New-Item -Path "C:\ejemplo\nuevo.txt" -ItemType File
- Maak de inhoud van een bestand leeg, maar behoud deze:
Clear-Content -Path "C:\ejemplo\log.txt"
- Testtekst toevoegen:
"Este es un ejemplo" | Add-Content -Path "C:\ejemplo\nuevo.txt"
- Vervang een woord in het hele bestand:
(Get-Content .\archivo.txt).replace('buscar', 'reemplazo') | Set-Content .\archivo.txt
Vergeet niet om jokers (*) te gebruiken als u met meerdere bestanden tegelijk wilt werken., bijvoorbeeld:
Get-Content C:\ejemplo\*.txt | Out-File -FilePath C:\ejemplo\resumen.txt
Geavanceerde verwerking: bestanden schrijven met StreamWriter en .NET
Voor taken die meer controle vereisen, zoals het schrijven van binaire gegevens, het verwerken van ongebruikelijke coderingen of het verwerken van grote volumes, kunt u de klasse gebruiken Systeem.IO.StreamWriter van .NET:
$sw = [System.IO.StreamWriter]::new('C:\ruta\archivo.txt')
$sw.WriteLine('Texto específico o datos binarios')
$sw.Close()
Met deze methode krijgt u extra flexibiliteit, vooral handig in geavanceerde scripts of wanneer u de uitvoerstroom moet aanpassen.
Werken met machtigingen en beveiligde bestanden
Soms kan het nodig zijn bestanden met specifieke machtigingen aanmaken of wijzig de ACL van een bestand. PowerShell en .NET maken dit eenvoudig door cmdlets en objecten te combineren. Om bijvoorbeeld volledige controle toe te wijzen aan een domeingebruiker:
$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
Op deze manier kunt u ervoor zorgen dat uw bestand niet alleen correct wordt aangemaakt en geschreven, maar ook is beschermd en heeft de juiste machtigingen.
Extra beheer: bestanden lezen, wijzigen en verwijderen
Bestandsbeheer in PowerShell beperkt zich niet tot typen. U kunt:
- Lees inhoud met Get-Content:
Get-Content -Path "C:\ruta\archivo.txt"
- Bestanden verwijderen met Remove-Item:
Remove-Item -Path "C:\ruta\archivo.txt"
- Bestanden kopiëren of verplaatsen met Copy-Item en Move-Item omdat u mappen opnieuw moet ordenen.
- Filter resultaten met behulp van jokers, selectoren en parameters om alleen aan de gewenste bestanden te werken.
Automatisering en manipulatie van grote hoeveelheden data
Een van de grootste voordelen van PowerShell is dat vergemakkelijkt de automatisering van processen met scripts. Moet u de inhoud van meerdere bestanden samenvoegen tot één nieuw bestand? Toepassingen:
Get-Content C:\carpeta\*.txt -Exclude resumen.txt | Set-Content C:\carpeta\resumen.txt
Of om het resultaat van een specifieke zoekopdracht aan meerdere bestanden toe te voegen:
Select-String "palabra clave" C:\carpeta\*.txt | Out-File -FilePath C:\carpeta\resultados.txt
En als u vastlopen tegenkomt met oneindige lussen of processen die nooit eindigen, bedenk dan dat u de uitvoering kunt onderbreken door op te drukken Control + C op de console.
Andere handige hulpmiddelen en snelkoppelingen in PowerShell
Naarmate u vertrouwder raakt met uw omgeving, ontdekt u handige snelkoppelingen, zoals:
- Automatisch aanvullen met de Tab-toets voor bestandspaden of opdrachten.
- Eerder gebruikte opdrachten terughalen met de pijltjes omhoog/omlaag.
- Snel met meerdere mappen werken met behulp van Push-Location (pushd) en Pop-Location (popd).
- Pijpuitvoer tussen verschillende cmdlets met behulp van het symbool | (pijp), bijvoorbeeld:
Get-Content archivo.txt | Measure-Object -Word -Line -Character
Overzicht van cmdlets en equivalenties
PowerShell richt zich op consistentie in de naamgevingsconventies voor "werkwoord-zelfstandig naamwoord" in alle cmdlets, waardoor ze gemakkelijker te leren zijn. Dit zijn de belangrijkste opdrachten die u moet onthouden:
Cmdlet | Alias | Primair gebruik |
---|---|---|
Set-Content |
sc |
Inhoud schrijven/vervangen |
Add-Content |
ac |
Voeg inhoud toe aan het einde |
Out-File |
- | Omleidingsopdrachtuitvoer |
Get-Content |
gc |
Inhoud lezen |
Remove-Item |
rm |
Bestanden/mappen verwijderen |
New-Item |
ni |
Bestanden en mappen aanmaken |
Clear-Content |
- | Lege bestanden |
Veel van deze cmdlets hebben kortere aliassen of zelfs Bash-equivalenten, waardoor de overgang eenvoudiger wordt als u al ervaring hebt met andere systemen.
Geavanceerd schrijven: gegevens en gestructureerde bestanden exporteren
Niet alles is platte tekst. Als je het nodig hebt gestructureerde gegevens exporteren, zoals tabellen of objectenPowerShell biedt u cmdlets zoals Exporteren-Csv:
$datos = @( @{Nombre='Juan';Edad=30}, @{Nombre='Ana';Edad=25} )
$datos | Export-Csv -Path "C:\datos.csv" -NoTypeInformation
Op deze manier kunt u CSV-bestanden genereren die compatibel zijn met Excel en andere hulpmiddelen, waardoor de praktische toepassingen van PowerShell op het gebied van systeembeheer en gegevensanalyse aanzienlijk worden uitgebreid.
Beheers de PowerShell-opdrachten om in bestanden te schrijven Hiermee kunt u de mogelijkheden voor het beheren en automatiseren van taken op Windows-systemen uitbreiden. Van eenvoudige tekstbestanden tot complexe rapporten of logs, alles is binnen handbereik van de console en een paar cmdletsGeleidelijk aan zal het werken met PowerShell een vanzelfsprekend onderdeel van uw routine worden, waardoor u tijd bespaart en taken nauwkeuriger en krachtiger kunt uitvoeren.
Gepassioneerd schrijver over de wereld van bytes en technologie in het algemeen. Ik deel mijn kennis graag door te schrijven, en dat is wat ik in deze blog ga doen: je de meest interessante dingen laten zien over gadgets, software, hardware, technologische trends en meer. Mijn doel is om u te helpen op een eenvoudige en onderhoudende manier door de digitale wereld te navigeren.