Hoe PowerShell te gebruiken om naar een tekstbestand te schrijven

3 juni 2021 102357 Keer bekeken

Deze S Zone leert je verschillende manieren om PowerShell te gebruiken om naar een bestand te schrijven.





De handleiding begint met het bespreken van verschillende PowerShell-cmdlets die worden gebruikt om uitvoer naar een bestand te schrijven. De sectie omvat: Uit-bestand , Add-Content en Set-Content Cmdlet met voorbeelden.



Vervolgens leert u in het tweede gedeelte hoe u verschillende PowerShell . kunt gebruiken Methoden: om het schrijven naar en bijwerken van een tekstbestand te manipuleren.

Ten slotte behandelt de laatste sectie alle mogelijke voorbeelden van het schrijven van uitvoer naar tekstbestanden in PowerShell. De voorbeelden variëren van een eenvoudig voorbeeld zoals het overschrijven van tekstbestanden tot geavanceerde voorbeelden zoals het manipuleren van bestandscodering.



Als u op zoek bent naar een specifiek voorbeeld, vouw dan Browse Post Topics hieronder uit en klik op het onderwerp.



De handleiding heeft een sectie met veelgestelde vragen met korte antwoorden op veelgestelde vragen over het gebruik van PowerShell om uitvoer naar een tekstbestand te schrijven.

Blader door berichtonderwerpen

PowerShell-cmdlets die worden gebruikt om tekstbestanden te schrijven of bij te werken

PowerShell-cmdlets om tekstbestanden te schrijven of bij te werken

In deze sectie worden de vier PowerShell-cmdlets geïntroduceerd die worden gebruikt om tekstbestanden te schrijven, bij te werken of te vervangen. In elke subsectie in deze sectie leert u hoe u Uit-bestand , Content toevoegen , en Set-inhoud .



Hoe PowerShell-uitvoer naar een tekstbestand te schrijven met Uit-bestand

Het schrijven van uitvoer naar een tekstbestand is net zo eenvoudig als het doorsturen van de uitvoer van het eerste commando naar: Uit-bestand en specificeer het pad naar het tekstbestand.



In mijn eerste voorbeeld zal ik een tekst invoeren in de PowerShell-prompt en deze vervolgens doorsturen naar Uit-bestand .

|__+_| Als het bestand niet bestaat, zal Out-File het maken in het pad gespecificeerd door de Bestandspad parameter.

De opdracht wordt uitgevoerd en keert terug naar de PowerShell-prompt.

Out-File gebruiken in PowerShell om te schrijven of toe te voegen aan een bestand

Hier is het bestand gemaakt in het opgegeven pad. De tweede afbeelding is de inhoud van het tekstbestand.

Out-File gebruiken in PowerShell om te schrijven of toe te voegen aan een bestand

U kunt deze methode gebruiken om de uitvoer van een PowerShell-opdracht naar een tekstbestand te schrijven.

In dit tweede voorbeeld zal ik de uitvoer van Get-Process naar een tekstbestand schrijven. Hier is de opdracht:

|__+_|

De opdracht zal het bestand processen.txt uitvoeren en maken. De uitvoer wordt weergegeven in de tweede afbeelding hieronder:

Hoe PowerShell-uitvoer aan een bestaand tekstbestand toe te voegen met Uit-bestand

Een andere manier om PowerShell te gebruiken om naar een bestand te schrijven, is door een bestaand tekstbestand met wat inhoud toe te voegen (meer inhoud toe te voegen).

In navolging van het eerste voorbeeld, zal de onderstaande opdracht de informatie vóór de pijplijn (|) toevoegen (toevoegen) aan de onderkant van het bestand, first-file.txt.

|__+_|

Het bestand heeft nu een tweede regel, met de tekst Dit wordt toegevoegd onder de eerste regel. Zie de afbeelding hieronder.

Hoe te gebruiken Content toevoegen In PowerShell om toe te voegen aan een tekstbestand

U kunt PowerShell ook gebruiken om naar een bestand te schrijven door aan een bestaand tekstbestand toe te voegen met Content toevoegen cmdlet.

Toevoegen Dit wordt onder de tweede regel toegevoegd aan ons bestaande bestand, first-file.txt, voer deze opdracht in en druk op enter.

|__+_|

Het bestand heeft nu een derde regel met de tekst Dit wordt onder de tweede regel toegevoegd. Zie de afbeelding hieronder:

In het laatste voorbeeld zal ik de uitvoer van toevoegen (schrijven) Get-proces Cmdlet naar processen.txt gemaakt in de Uit-bestand voorbeeld.

In dit voorbeeld voer ik de onderstaande opdrachten uit:

|__+_| |__+_|

Het eerste commando slaat de uitvoer op van Get-proces in de Werkwijze variabel. De tweede opdracht voegt de uitvoer van de variabele toe aan het bestand processen.txt.

U kunt een van de methoden gebruiken die in deze S Zone worden behandeld om naar een bestand te schrijven (of toe te voegen aan een bestaand bestand) met PowerShell!

Hoe te gebruiken Set-inhoud In PowerShell om naar een tekstbestand te schrijven

Tot nu toe heb ik u in dit gedeelte laten zien hoe u Uit-bestand om naar een tekstbestand te schrijven. Je hebt ook gezien hoe je dezelfde cmdlet kunt gebruiken om aan een tekstbestand toe te voegen.

Ten slotte heb ik u in de laatste subsectie laten zien hoe u Content toevoegen om uitvoer aan een tekstbestand toe te voegen.

Deze subsectie introduceert Set-inhoud . Een verschil tussen deze Cmdlet en de andere 2 die al zijn besproken, is dat while Uit-bestand en Content toevoegen kan inhoud aan een tekstbestand toevoegen, Set-inhoud overschrijft de inhoud.

Dus de onderstaande opdracht overschrijft de inhoud van het bestand met een nieuwe inhoud gespecificeerd in de Waarde parameter.

|__+_|

Hier is het tekstbestand - alle eerdere inhoud is vervangen!

PowerShell-tekstbestand Methoden: Gebruikt om tekstbestanden te schrijven of bij te werken

Hoe te schrijven naar tekstbestand met PowerShell-tekstbestandsmethoden

Het eerste gedeelte van deze handleiding omvatte verschillende PowerShell-cmdlets die worden gebruikt om uitvoer naar tekstbestanden te schrijven. In deze sectie leert u hoe u dezelfde taken kunt uitvoeren met het PowerShell-tekstbestand Methoden: .

Het gedeelte begint met u te leren hoe u een beschikbaar tekstbestand kunt vinden Methoden: . Vervolgens leert u in de volgende subsecties hoe u deze PowerShell . kunt gebruiken Methoden: om de inhoud tekstbestanden te schrijven, bij te werken en te overschrijven.

Ik zal het tekstbestand in de onderstaande schermafbeelding gebruiken om uit te leggen hoe je PowerShell kunt vinden Methoden: beschikbaar wanneer u een tekstbestand vermeldt met de Inhoud krijgen cmdlet. Bovendien zal ik dit tekstbestand gebruiken voor de voorbeelden in alle subsecties in deze sectie.

Hoe u PowerShell-tekstbestandsmethoden kunt vinden

Om een ​​lijst van alle te zien Methoden: en Operators beschikbaar in een tekstbestand, pijp de uitvoer van de Inhoud krijgen commando om Get-Lid .

Hier is een voorbeeldopdracht….

|__+_|

De opdracht bevat een aantal PowerShell Methoden: . Voor het doel van deze handleiding ben ik echter geïnteresseerd in het volgende: Methoden: :

  • Invoegen
  • Verwijderen
  • Vervangen

Daarnaast zal ik ook gebruik maken van de Index van Werkwijze in mijn illustraties. Ik heb deze gemarkeerd Methoden: in het resultaat van het laatste commando...

In de volgende subsecties leert u hoe u deze PowerShell Methoden: beschikbaar wanneer u een tekstbestand vermeldt met de Inhoud krijgen cmdlet.

Hoe PowerShell te gebruiken Invoegen Methode om strings toe te voegen aan een bestaand tekstbestand

De algemene syntaxis van de PowerShell Invoegen Methode is…

|__+_|

De startindex is het eerste teken van de substring waarvoor we een tekst willen invoegen. Verder is de tekenreekswaarde is de tekst die u wilt invoegen.

Een gemakkelijke manier om de te bepalen startIndex is om de te berekenen Index van waarde van de tekenreeks waar u een tekst omheen wilt invoegen.

Ik weet dat het meeste van wat ik heb gezegd, voor jou als Grieks in de oren klinkt! Dus, laat het me uitleggen met een voorbeeld in mijn tekstbestand.

Om te beginnen wil ik het pad naar mijn bestand in een variabele opslaan. Dit maakt het voor mij gemakkelijker om de bijgewerkte inhoud later op te slaan.

|__+_|

Vervolgens zal ik de . gebruiken Inhoud krijgen commando om de inhoud van het tekstbestand weer te geven. Sla het resultaat vervolgens op in een andere variabele...

|__+_|

Voordat ik verder ga met de volgende stap, wil ik de syntaxis van de PowerShell terugbrengen Invoegen Methode…

|__+_|

Zoals ik eerder liet doorschemeren, is de gemakkelijkste manier om de startIndex – de positie in het tekstbestand waar we een tekst willen invoegen – is om de . te gebruiken Index van Methode .

In dit voorbeeld wil ik het woord niet vóór overschrijven invoegen...

Hoe de PowerShell-invoegmethode te gebruiken om tekst toe te voegen aan een bestaand tekstbestand

De eerste stap is het bepalen van de Index van waarde van overschrijven. De onderstaande opdracht doet het werk ...

|__+_|

Het resultaat is 10.

Houd er rekening mee dat dit Index van van 10 staat precies aan het begin van het eerste teken van het woord, overschrijven.

Met dit in gedachten, als ik een tekenreeks (tekst, cijfers, tekens - wat dan ook) wil invoegen voordat ik overschrijf, gebruik ik 10 als de startIndex .

Bovendien, als ik iets aan het einde van de tekenreeks wil invoegen, overschrijven, tel ik het aantal tekens vanaf het eerste teken - in dit geval o - tot het einde van de tekenreeks, overschrijven - dat is 18

Merk op dat spaties ook als tekens worden geteld.

Maar voor dit voorbeeld wil ik het woord niet voor overschrijven invoegen...

Hoe de PowerShell-invoegmethode te gebruiken om tekst toe te voegen aan een bestaand tekstbestand

Dit is het commando dat deze magie doet...

|__+_| Ik heb een spatie toegevoegd na niet om een ​​spatie te maken tussen niet en overschrijven.

In de opdracht, 10 is de startIndex , niet is tekenreekswaarde . Deze opdracht volgt de syntaxis van de onderstaande invoegmethode ...

|__+_|

En hier is het resultaat van de laatste opdracht in PowerShell. Het resultaat bevat het woord dat we hebben ingevoegd!

Maar we zijn nog niet klaar. De laatste stap is om deze waarde in hetzelfde tekstbestand te schrijven.

Om dit te doen, moeten we de Set-inhoud opdracht. Als je je herinnert, heb ik in de laatste sectie vermeld dat, in tegenstelling tot de andere 2 cmdlets die ik in die sectie heb besproken, Set-inhoud overschrijft de inhoud van een tekstbestand.

Dus om de uitvoer van de laatste PowerShell-opdracht naar hetzelfde tekstbestand te schrijven, voert u de onderstaande opdracht uit ...

|__+_|

Zodra ik deze laatste opdracht uitvoer en mijn tekstbestand open, maakt het woord, niet nu deel uit van de tekenreeksen in het tekstbestand!

Hoe de PowerShell-invoegmethode te gebruiken om tekst toe te voegen aan een bestaand tekstbestand

Hoe PowerShell te gebruiken Verwijderen Methode om strings in een bestaand tekstbestand te verwijderen

Toen ik deze sectie introduceerde, zei ik dat ik voorbeelden zal geven met de PowerShell Verwijderen Methode. In deze subsectie leert u hoe u deze PowerShell-methode kunt gebruiken om tekenreeksen uit een tekstbestand te verwijderen.

Laten we beginnen met de syntaxis van de Verwijderen Methode:

|__+_| |__+_|

In de eerste syntaxis specificeert u eenvoudig de startIndex . Bovendien moet u in de tweede syntaxis de . specificeren startIndex en de Graaf .

Zoals ik in de laatste subsectie heb uitgelegd, kun je de startIndex door de te berekenen Index van van de syntaxis die u wilt verwijderen.

Bovendien, voor de tweede syntaxis, de Graaf is het aantal tekens – van de startIndex – u wilt verwijderen.

Stel dat we de tekenreeks willen verwijderen die niet is toegevoegd aan ons tekstbestand in de laatste subsectie. De eerste stap is het bepalen van de Index van van het eerste teken van de tekenreeks, niet.

Voortbordurend op de voorbeelden in de laatste subsectie, zal de derde opdracht hieronder bepalen Index van waarde:

|__+_|

Het resultaat is 10…

Hoe de PowerShell-verwijdermethode te gebruiken om tekenreeksen in een bestaand tekstbestand te verwijderen

Om verder te gaan, om de string te verwijderen, niet, zullen we de tweede syntaxis van de . gebruiken Verwijderen Methode.

|__+_|

In mijn voorbeeld is de startIndex is 10. Eerder heb ik uitgelegd dat de Graaf is het aantal tekens – van de startIndex – u wilt verwijderen.

Dus we willen de tekenreeks verwijderen, niet - die 3 tekens is van de startIndex . Daarom, de Graaf is 3.

Op basis van deze informatie zal de onderstaande opdracht de tekenreeks verwijderen, niet uit ons tekstbestand.

stoom te veel mislukte inlogpogingen
|__+_|

Hier is het resultaat…

Als je het resultaat goed bekijkt, zul je merken dat er dubbele ruimte is tussen willen en overschrijven. Om een ​​van de spaties te verwijderen, maakt u de Graaf 4…

|__+_|

Nu is de ruimte weg!

Hoe de PowerShell-verwijdermethode te gebruiken om tekenreeksen in een bestaand tekstbestand te verwijderen

Gebruik ten slotte de PowerShell-opdracht hieronder om de bijgewerkte tekst naar het bestand te schrijven...

|__+_|

Nadat de opdracht is uitgevoerd, wordt het bestand bijgewerkt zonder de tekenreeks, niet. Zie de screenshots hieronder...

Hoe PowerShell te gebruiken Vervangen Methode om een ​​tekenreeks in een tekstbestand te vervangen

In de laatste 2 subsecties van deze sectie heb ik je geleerd hoe je de Invoegen en Verwijderen PowerShell-methoden om naar een tekstbestand te schrijven.

In deze laatste paragraaf leer je hoe je een string vervangt door een andere string. Laten we zoals gewoonlijk beginnen met de syntaxis van de Vervangen Methode:

|__+_|

In tegenstelling tot de andere 2 methoden waarvoor u moet bepalen: startindex , of Graaf , de Vervangen Methode niet. Het enige dat u hoeft te doen om een ​​tekenreeks te vervangen, is de tekenreeks die u wilt vervangen op te geven en vervolgens de nieuwe tekenreeks op te geven.

Om dit met een voorbeeld te illustreren, gaan we terug naar ons tekstbestand. In dit voorbeeld wil ik de tekenreeks vervangen, overschrijven met overschrijven...

De derde opdracht hieronder zal het werk doen. Ik heb de eerste twee commando's opnieuw geïntroduceerd, zodat ik de bijgewerkte versie van het tekstbestand in mijn variabelen kan krijgen.

Bovendien schrijft de laatste PowerShell-opdracht de bijgewerkte uitvoer naar hetzelfde tekstbestand...

|__+_|

Na het uitvoeren van de opdrachten wordt het tekstbestand bijgewerkt. Zie onderstaande schermafbeelding...

PowerShell Redirection-operators gebruiken om aan een tekstbestand toe te voegen

Windows PowerShell heeft een set van: omleidingsoperators . U kunt twee van deze omleidingsoperatoren gebruiken om naar tekstbestanden in PowerShell te schrijven of deze bij te werken.

Ik ben me ervan bewust dat omleidingsoperators niet passen in dit gedeelte over schrijven naar een tekstbestand met PowerShell-methoden. Dit is echter de enige logische sectie die ik in dit onderwerp kan opnemen.

Gebruik de > omleidingsoperator om een ​​nieuw tekstbestand te maken en ernaar te schrijven. Als u deze operator gebruikt om PowerShell-stream naar een tekstbestand te schrijven, wordt de inhoud van het tekstbestand overschreven.

Als u echter een tekstbestand wilt bijwerken zonder de inhoud ervan te overschrijven, gebruikt u de >> omleidingsoperator.

Voer de volgende opdrachten uit om te illustreren hoe deze operators werken.

|__+_| |__+_|

Het eerste commando maakt een tekstbestand aan, E: eportsRedirectExample.txt . Schrijft vervolgens omleiding naar het tekstbestand.

Bovendien voegt de tweede opdracht omleidingsregel 2 toe aan hetzelfde tekstbestand. Hier zijn de opdrachten in PowerShell en een screenshot van het tekstbestand.

PowerShell Redirection-operators gebruiken om aan een tekstbestand toe te voegen

PowerShell-voorbeelden van schrijven naar tekstbestanden

PowerShell-voorbeelden van schrijven naar tekstbestanden

In dit laatste gedeelte zal ik meerdere voorbeelden delen om naar een tekstbestand in PowerShell te schrijven. In de voorbeelden zal ik de vaardigheden toepassen die in de eerste twee secties van deze handleiding worden behandeld.

Hoe PowerShell-uitvoer naar een tekstbestand te schrijven en het te overschrijven?

Er zijn drie manieren om de inhoud van een tekstbestand te overschrijven. Ten eerste, als u de Uit-bestand commando zonder de toevoegen parameter, zal het de inhoud van het tekstbestand overschrijven.

Bovendien kunt u de inhoud van een tekstbestand overschrijven met de Set-inhoud opdracht. Tot slot kunt u de > omleidingsoperator om de inhoud van een tekst te overschrijven.

Om enkele voorbeelden te geven, zullen de onderstaande commando's de inhoud van het tekstbestand overschrijven, E: eportsoverwrite.txt :

|__+_|

De onderstaande schermafbeelding toont de opdrachten en de uiteindelijke inhoud van het tekstbestand.

Hoe PowerShell-uitvoer naar een tekstbestand en console te schrijven?

Als u een PowerShell-uitvoer naar een tekstbestand wilt schrijven en de uitvoer ook op de console wilt weergeven, kunt u een van deze twee cmdlets gebruiken: Content toevoegen of Set-inhoud .

De twee cmdlets hebben een parameter genaamd PassThru . Als u de PassThru parameter, PowerShell schrijft de uitvoer naar het opgegeven tekstbestandspad; geeft het vervolgens ook aan de console weer.

De cmdlet die u gebruikt, hangt echter af van of u aan het tekstbestand wilt toevoegen of de inhoud van het tekstbestand wilt overschrijven. Om aan het tekstbestand toe te voegen, gebruik Content toevoegen .

Als u echter van plan bent de inhoud van het tekstbestand te overschrijven, gebruik dan Set-inhoud . Ik zal het illustreren met twee voorbeelden.

Om de zin toe te voegen, wordt dit toegevoegd door de Content toevoegen , naar het opgegeven tekstbestand en geef het bericht weer op de console, voer de onderstaande opdracht uit:

|__+_|

De onderstaande schermafbeelding toont het resultaat van de opdracht in PowerShell en de uitvoer van het tekstbestand.

Hoe PowerShell-uitvoer naar een tekstbestand en console te schrijven?

Integendeel, om de inhoud van het tekstbestand te overschrijven en ook de uitvoer naar de console te schrijven, gebruikt u de onderstaande opdracht...

|__+_|

Ten slotte is hier de uitvoer van de PowerShell-opdracht die op de console wordt weergegeven en ook naar het tekstbestand is geschreven. Deze keer overschreef het echter de inhoud van het tekstbestand.

Hoe PowerShell-uitvoer naar een tekstbestand te schrijven zonder nieuwe regel?

Als u deze PowerShell-opdracht uitvoert, schrijft het in plaats van de uitvoer naar dezelfde regel in het tekstbestand te schrijven de twee strings, Victor en Ashiedu in twee regels...

|__+_|

Als het echter uw doel is om beide strings op dezelfde regel te schrijven, moet u een Uit-bestand Cmdlet-parameter genaamd Geen nieuwe regel .

|__+_|

Nu heeft het tekstbestand beide strings op dezelfde regel! Er is echter geen spatie tussen de twee tekenreeksen - in dit geval de voor- en achternaam van een persoon.

Hoe PowerShell-uitvoer naar een tekstbestand te schrijven zonder nieuwe regel?

Om een ​​spatie tussen de twee namen op te nemen, voeg je een spatie toe voor de tweede string, Ashiedu. De onderstaande opdracht is hetzelfde als de vorige opdracht, behalve de spatie voor de tweede tekenreeks.

|__+_|

Hier is het tekstbestand nu ...

Als u het tekstbestand niet wilt overschrijven, voegt u de toevoegen parameter in de laatste opdracht.

Hoe PowerShell-uitvoer naar een tekstbestand te schrijven met UTF 8-codering

De Uit-bestand Cmdlet heeft een parameter genaamd codering . Wanneer u PowerShell-uitvoer naar een tekstbestand schrijft, kunt u deze para meter gebruiken om de bestandscodering op te geven.

Als u bovendien de codering van een bestaand tekstbestand wilt wijzigen, kunt u de uitvoer van de Inhoud krijgen commando om Uit-bestand .

De codering parameter ondersteunt UTF8, ASCII, UTF32 en meer. U kunt elk van de coderingstypen opgeven.

Aangezien deze subsectie gaat over het schrijven van PowerShell-uitvoer naar een tekstbestand met UTF8-codering, zijn hier voorbeelden van opdrachten die dit kunnen bereiken...

|__+_| |__+_|

De eerste opdracht schrijft de uitvoer naar een tekstbestand met UTF8-codering.

Bovendien importeert de tweede opdracht de inhoud van een tekstbestand in PowerShell met Inhoud krijgen . Schrijft vervolgens dezelfde inhoud naar een ander tekstbestand met UTF8-codering.

Hoe PowerShell te repareren Schrijf naar bestand Toegang geweigerd fout

Soms, wanneer u PowerShell-uitvoer naar een tekstbestand probeert te schrijven, ontvangt u mogelijk een foutbericht voor toegang geweigerd. Deze fout kan verschillende oorzaken hebben.

Een van de redenen waarom u een foutbericht voor toegang geweigerd krijgt, is als u naar een open tekstbestand probeert te schrijven. Als u probeert te schrijven naar een tekstbestand dat in gebruik is door een ander Windows-proces, kunt u ook de foutmelding Toegang geweigerd krijgen.

Een andere reden waarom u een foutmelding voor toegang geweigerd kunt krijgen, is als u een tekstbestand probeert te maken met een niet-ondersteund teken. Als u bijvoorbeeld probeert een tekstbestand te maken met een / in de naam, krijgt u mogelijk een foutbericht voor toegang geweigerd.

Ten slotte, als een tekstbestand een Alleen-lezen-kenmerk heeft, ontvangt u ook de foutmelding Toegang geweigerd.

De oplossing om dit probleem op te lossen, is dus de reden voor de foutmelding te achterhalen. Breng vervolgens wijzigingen aan.

In de volgende subsectie zal ik u leren hoe u PowerShell-uitvoer schrijft naar een tekstbestand met een alleen-lezen-kenmerk.

Hoe u PowerShell kunt gebruiken om naar een alleen-lezen tekstbestand te schrijven

Als u PowerShell-uitvoer naar een alleen-lezen tekstbestand probeert te schrijven, ontvangt u een foutbericht voor toegang geweigerd. Om dit te testen, heb ik het kenmerk Alleen-lezen ingeschakeld voor een van de tekstbestanden die we eerder hebben gemaakt.

Hoe u PowerShell kunt gebruiken om naar een alleen-lezen tekstbestand te schrijven

Als ik nu probeer naar het tekstbestand te schrijven met de onderstaande opdracht, ontvang ik een foutmelding voor toegang geweigerd.

|__+_|

Het goede nieuws is dat alle PowerShell-opdrachten die naar een tekstbestand kunnen schrijven een parameter hebben met de naam Kracht . Als u deze opdracht opneemt in Uit-bestand , Set-inhoud , of Content toevoegen , kunt u naar een alleen-lezen tekstbestand schrijven.

Als we bijvoorbeeld de laatste opdracht wijzigen zoals hieronder weergegeven, geeft de opdracht geen foutmelding terug.

|__+_|

Deze keer is de opdracht succesvol en is het tekstbestand bijgewerkt!

Hoe u PowerShell kunt gebruiken om naar een alleen-lezen tekstbestand te schrijven

Hoe PowerShell-uitvoer naar een tekstbestand te schrijven en een map te maken als deze niet bestaat

Standaard, als je draait Uit-bestand , Set-inhoud , of Content toevoegen commando's en een pad specificeert naar een tekstbestand dat niet bestaat, wordt het bestand aangemaakt.

Als het opgegeven pad echter een map bevat die niet bestaat, ontvangt u een foutbericht. Om dit te testen, voer ik de onderstaande opdracht uit die een map bevat, Geen nieuwe regel – deze map bestaat niet in het opgegeven pad...

|__+_|

De opdracht retourneert een foutmelding.

Om dit probleem op te lossen, gebruikt u de opdracht Test-Path om te controleren of het pad bestaat. Gebruik dan, als het niet bestaat, de Nieuw item commando om het te maken voordat u de . uitvoert Uit-bestand opdracht.

Hier is het bijgewerkte script. De laatste regel is de meest recente opdracht in deze handleiding...

|__+_| De Kracht parameter is wat krachten Nieuw item om alle mappen te maken die niet in het pad voorkomen.

Om het script uit te voeren, kopieert u het naar een nieuw PowerShell ISE-document en voert u het uit. Voordat ik het script uitvoer, laat de onderstaande schermafbeelding zien dat de map niet bestaat ...

Hoe PowerShell-uitvoer naar een tekstbestand te schrijven en een map te maken als deze niet bestaat

Nadat het script is uitgevoerd, bestaat de map nu in het pad...

Ten slotte, als u de . opent Geen nieuwe regel map, vindt u de tekst, nonewline.txt .

PowerShell Concatenate gebruiken om naar een tekstbestand te schrijven

U kunt PowerShell gebruiken om de inhoud van twee tekstbestanden samen te voegen tot één enkel tekstbestand. Het proces van het samenvoegen van twee tekstbestanden tot één wordt concatenatie genoemd.

Om een ​​voorbeeld te geven, ik heb twee bestanden gemaakt, Processfile1.txt en Processfile2.txt . Dan gebruik ik Inhoud krijgen om de bestanden samen te voegen.

Ten slotte pijp ik het resultaat van Inhoud krijgen naar Set-inhoud en schrijf de samengevoegde bestanden in een enkel bestand. Hier zijn de commando's...

|__+_|

Hoe PowerShell te gebruiken om datum- en tijduitvoer naar een tekstbestand te schrijven

Er zijn zoveel gevallen dat u de datum en tijd naar een tekstbestand moet schrijven. Een voorbeeld is als u een foutenlogboek wilt genereren.

Als u bijvoorbeeld een PowerShell-script gebruikt om een ​​taak op een aantal servers uit te voeren, is het een goed idee om een ​​logbestand te maken met servers waarmee het script geen verbinding kan maken. Deze logbestanden kunnen vervolgens worden gebruikt voor het oplossen van problemen.

Bovendien, wanneer u dergelijke logbestanden maakt, is het ook een goed idee om een ​​datum- en tijdstempel op te nemen. Op deze manier weet u wanneer het script heeft geprobeerd verbinding te maken met de server.

Genoeg gepraat! Ik zal u laten zien hoe u met PowerShell datum- en tijdstempels naar een tekstbestand schrijft. In dit voorbeeld heb ik een lijst met niet-bestaande computers in een tekstbestand.

In het onderstaande script gebruik ik de Test verbinding commando om een ​​computer te pingen. Als de computer dan reageert, zal mijn script proberen enkele taken op de externe computer uit te voeren.

Als de Test verbinding opdracht geen antwoord ontvangt van de externe computer, genereert het script een foutmelding met de huidige datum- en tijdstempel.

Ten slotte schrijven de scripts de foutenlogboeken met datum- en tijdstempels in een tekstbestand.

Hier is het script. Zie hieronder voor een gedetailleerde uitleg van elke regel...

|__+_|

Als u het script wilt uitvoeren, kopieert u het naar een nieuw PowerShell ISE-document en voert u vervolgens het script uit. Toen ik het script uitvoerde, maakte het een bestand met de naam woensdag 02-06-2021.txt - de datum van vandaag.

Bovendien heeft het de ingangen van het tekstbestand gemaakt, woensdag 02-06-2021.txt – zie onderstaande schermafdruk…

Om het script uit te leggen heb ik het hieronder gekopieerd. Ik heb ook regelnummers toegevoegd om ze gemakkelijk te kunnen raadplegen.

|__+_|

Hier is een overzicht van dit schijnbaar complexe PowerShell-script:

  1. In Lijn 1 , ik gebruikte de Inhoud krijgen opdracht om mijn lijst met servers in PowerShell te importeren. De servers worden opgeslagen in een tekstbestand – Get-Content E: eportsITGServers.txt. Ten slotte heb ik het resultaat van de lijst met servers opgeslagen in een variabele met de naam Servers .
  2. Dan in Lijn 2 Ik heb de naam van het tekstbestand gemaakt waarin ik mijn foutmeldingen zal opslaan. ik gebruikte de Krijg datum opdracht om het tekstbestand te maken.

    In regel 10 zal ik het PowerShell-script schrijven dat de foutlogboeken in het tekstbestand schrijft - hierover later meer. Ten slotte, om dit bestand later in het script te kunnen gebruiken, heb ik het opgeslagen in een variabele met de naam logbestandsnaam .
  3. Het script gaat verder in Lijn 3. In deze regel introduceer ik de Voor Elk Methode . Met deze methode kan ik de inhoud van het bestand herhalen dat is opgeslagen in de Servers variabel.

    Er zijn twee belangrijke elementen van de voor elk Methode geïntroduceerd in regel 3 - ( en {. De eerste openingshaak, ( opent de voor elk Methode . Bovendien, de haak, { opent de voor elk opdracht instructie blok.
  4. Dan in Lijn 4 , ik ping elke server die is opgeslagen in de Servers variabel. Tijdens elke cyclus van de voor elk blok iteratie, het neemt een servernaam van de Servers variabele - slaat het op in een automatische variabele, $_ - gebruikt vervolgens de servernaam die is opgeslagen in $_ als de computernaam in de ping-test.

    Nogmaals, om het gemakkelijk te maken om toegang te krijgen tot het resultaat van de ping-test, sla ik het resultaat op in een andere variabele genaamd PingTest . Het resultaat van de ping-test is ofwel: Waar of niet waar .
  5. In Lijn 5 , introduceer ik het IF-statementblok. Dan, in de voorwaarde een deel van het blok (), voor elke server, test ik of het resultaat van de ping-test, opgeslagen in de PingTest variabele is Waar of niet waar .

    Bovendien, als het resultaat van de ping-test is Waar , voert het PowerShell-script de taak uit in het opdrachtblok van de IF-instructie. Het opdrachtblok van het IF-statement wordt geopend met een { haakje in regel 5.
  6. Dan in Lijn 6 , voer ik de opdracht uit in het IF-statementblok. In Lijn 7 , sluit ik het opdrachtblok van de IF-instructie met een haakje sluiten, }.
  7. Lijn 8introduceert de Anders statement-gedeelte van het IF-statementblok. In dit blok voer ik de opdracht uit die ik wil uitvoeren op alle servers die False hebben geretourneerd naar de ping-test.
  8. In Lijn 9 , genereert het script de huidige datum en tijd. Vervolgens slaat het het resultaat op in een variabele genaamd datum en tijdstempel . Het script gebruikt deze variabele in regel 10
  9. Dan in Lijn 10 , schrijft het PowerShell-script de huidige datum- en tijdstempel in het tekstbestand dat ik in regel 2 heb gemaakt. De opdracht in regel 9 bestaat uit 3 delen.

    In het eerste deel genereert het script een deel van de foutmelding. Dit deel bevat de variabele dateandtimestamp en enkele spaties.

    Vervolgens bevat het script in het gedeelte van de opdracht (het bericht) een daadwerkelijk bericht: de server, $_ is overgeslagen omdat deze niet reageerde op ping. De automatische variabele, $_ is dezelfde variabele die wordt gegenereerd door de ForEaxch verklaring in Lijn 4 .

    Ten slotte wordt het hele bericht doorgesluisd naar de opdracht Out-File - dit is in Lijn 11 .
  10. Lijn 12sluit de Anders instructie-opdrachtblok met een haakje sluiten, }.
  11. Dan in Lijn 13 , het script sluit de Voor Elk instructie-opdrachtblok met een klok een haakje sluiten, }.
  12. Eindelijk, in Lijn 14 , het script sluit de Voor Elk Methode met het sluithaakje, ). De voor elk Methode werd geopend in lijn 3.

Gebruik PowerShell om naar tekstbestand te schrijven: veelgestelde vragen

Gebruik Powershell om naar een tekstbestand te schrijven: veelgestelde vragen 1. Hoe stuur ik PowerShell-resultaten naar een tekstbestand?

Er zijn 3 manieren om PowerShell-resultaten naar een tekstbestand te sturen.

Ten eerste kunt u de operator > gebruiken naast het resultaat dat u naar een tekstbestand wilt sturen, gevolgd door een spatie en vervolgens het volledige pad naar het tekstbestand.

Bovendien kunt u de Out-File-opdracht Cmdlets gebruiken. Om Out-File te gebruiken, pipet (|), de uitvoer van het PowerShell-resultaat naar Out-File gevolgd door een spatie en vervolgens het volledige pad naar het tekstbestand.

Ten slotte kunt u PowerShell-resultaten toevoegen aan een bestaand tekstbestand met behulp van de Add-Content. Het gebruik is vergelijkbaar met Out-File dat eerder is uitgelegd.

2. Hoe sla ik een tekstbestand op in PowerShell?

U kunt de Nieuw item cmdlet om een ​​nieuw tekstbestand in PowerShell te maken. Om items aan het tekstbestand toe te voegen en het automatisch op te slaan, gebruik de Content toevoegen cmdlet.

3. Hoe lees ik een bestand in PowerShell?

Gebruik de Inhoud krijgen cmdlet om de inhoud van een tekstbestand in PowerShell te lezen. Om bijvoorbeeld de inhoud van D: ext.txt te lezen, gebruikt u het commando Get-Content D: ext.txt

Hoe lees ik een bestand in PowerShell

4. Hoe zou u de waarde weergeven die is opgeslagen in een variabele in de PowerShell-console?

Voer de naam van de variabele in PowerShell in en druk op Enter. De waarde die is opgeslagen in de Powershell-variabele wordt weergegeven in de console. Om bijvoorbeeld de waarden weer te geven die zijn opgeslagen in de $Inhoud variabele, voer je gewoon $Console in PowerShell in en druk je op de enter-toets.

Hoe zou u de waarde weergeven die is opgeslagen in een variabele in de PowerShell-console?

5. Hoe voeg je PowerShell toe?

De eenvoudigste manier om in PowerShell toe te voegen, is door de cijfers in te voeren, gescheiden door het optelteken (+), en vervolgens op de Enter-toets te drukken. Om bijvoorbeeld 2 en 5 toe te voegen, typt u 2 + 5 en druk vervolgens op enter. Het antwoord wordt weergegeven in de console.

Hoe voeg je PowerShell toe?

Dat is het! Onze bijgewerkte handleiding met uitgebreide voorbeelden om PowerShell-uitvoer naar een tekstbestand te schrijven.

hoe je een bin-bestand omzet in een iso

Ik hoop dat je deze S Zone nuttig vond. Als je het nuttig vond, stem dan vriendelijk Ja op de Was dit bericht Nuttige vraag hieronder.

U kunt ook een vraag stellen, een opmerking achterlaten of feedback geven met het formulier 'Een reactie achterlaten' aan het einde van deze pagina.

Bezoek ten slotte onze Windows PowerShell-instructiepagina voor meer PowerShell S-zones. Misschien vindt u onze pagina Werken vanaf de startpagina ook erg nuttig.

Referenties en verder lezen

  1. Uit-bestand
  2. Content toevoegen
  3. Set-inhoud
  4. Out-Null
  5. Krijg datum
  6. about_Redirection