Hvordan bruke PowerShell til å skrive til en tekstfil

3. juni 2021 102357 Visninger

Denne S-sonen lærer deg forskjellige måter å bruke PowerShell til å skrive til fil.





Veiledningen starter med å diskutere forskjellige PowerShell Cmdlets som brukes til å skrive utdata til fil. Avsnittet dekker Ut-fil , Add-Content og Set-Content Cmdlet med eksempler.



Så, i den andre delen, vil du lære hvordan du bruker forskjellige PowerShell Metoder å manipulere skrive til og oppdatere en tekstfil.

Til slutt dekker den siste delen alle mulige eksempler på å skrive utdata til tekstfiler i PowerShell. Eksemplene spenner fra et enkelt eksempel som å overskrive tekstfiler – til avanserte eksempler som å manipulere filkoding.



Hvis du ser etter et spesifikt eksempel, utvider du Bla gjennom innleggsemner nedenfor og klikker på emnet.



Veiledningen har en FAQ-seksjon med korte svar på vanlige spørsmål om bruk av PowerShell til å skrive utdata til en tekstfil.

Bla gjennom innleggsemner

PowerShell Cmdlets som brukes til å skrive eller oppdatere tekstfiler

PowerShell Cmdlets for å skrive eller oppdatere tekstfiler

Denne delen introduserer de fire PowerShell Cmdletene som brukes til å skrive, oppdatere eller erstatte tekstfiler. I hver underseksjon i denne delen lærer du hvordan du bruker Ut-fil , Legg til innhold , og Sett-innhold .



Hvordan skrive PowerShell-utdata til en tekstfil med Ut-fil

Å skrive utdata til en tekstfil er like enkelt som å overføre utdataene fra den første kommandoen til Ut-fil og spesifiser banen til tekstfilen.



I mitt første eksempel vil jeg skrive inn en tekst i PowerShell-ledeteksten og deretter sende den til Ut-fil .

|_+_| Hvis filen ikke eksisterer, vil Out-File opprette den i banen spesifisert av FilePath parameter.

Kommandoen vil kjøre og gå tilbake til PowerShell-ledeteksten.

Hvordan bruke Out-File i PowerShell for å skrive eller legge til fil

Her er filen opprettet i den angitte banen. Det andre bildet er innholdet i tekstfilen.

Hvordan bruke Out-File i PowerShell for å skrive eller legge til fil

Du kan bruke denne metoden til å skrive utdataene fra en hvilken som helst PowerShell-kommando til en tekstfil.

I dette andre eksemplet vil jeg skrive utdataene fra Get-Process til en tekstfil. Her er kommandoen:

|_+_|

Kommandoen vil kjøre og lage processes.txt-fil. Utgangen er vist i det andre bildet nedenfor:

Hvordan legge til PowerShell-utdata til en eksisterende tekstfil med Ut-fil

En annen måte å bruke PowerShell til å skrive til fil er å legge til (legge til mer innhold) til en eksisterende tekstfil med noe innhold.

Etter det første eksemplet, vil kommandoen nedenfor legge til (legge til) informasjonen før pipeline (|) nederst i filen, first-file.txt.

|_+_|

Filen har nå en andre linje, med teksten Dette vil bli lagt til under den første linjen. Se bildet nedenfor.

Hvordan å bruke Legg til innhold I PowerShell For å legge til en tekstfil

Du kan også bruke PowerShell til å skrive til fil ved å legge til en eksisterende tekstfil med Legg til innhold cmdlet.

For å legge til Dette vil bli lagt til under den andre linjen til vår eksisterende fil, first-file.txt, skriv inn denne kommandoen og trykk enter.

|_+_|

Filen vil nå ha en tredje linje med teksten. Denne vil bli lagt til under den andre linjen. Se bildet nedenfor:

I det siste eksemplet vil jeg legge til (skrive) utdataene til Få-prosess Cmdlet til processes.txt opprettet i Ut-fil eksempel.

I dette eksemplet vil jeg kjøre kommandoene nedenfor:

|_+_| |_+_|

Den første kommandoen lagrer utdataene til Få-prosess i Prosess variabel. Den andre kommandoen legger utdata fra variabelen til processes.txt-filen.

Du kan bruke en av metodene som dekkes i denne S-sonen for å skrive til fil (eller legge til en eksisterende fil) med PowerShell!

Hvordan å bruke Sett-innhold I PowerShell for å skrive til en tekstfil

Så langt i denne delen har jeg vist deg hvordan du bruker Ut-fil å skrive til en tekstfil. Du så også hvordan du bruker den samme Cmdleten for å legge til en tekstfil.

Til slutt, i den siste underdelen viste jeg deg hvordan du bruker Legg til innhold for å legge til utdata til en tekstfil.

Denne underseksjonen introduserer Sett-innhold . En forskjell mellom denne Cmdleten og de to andre som allerede er diskutert, er at mens Ut-fil og Legg til innhold kan legge til innhold til en tekstfil, Sett-innhold overskriver innholdet.

Så kommandoen nedenfor overskriver innholdet i filen med et nytt innhold spesifisert i Verdi parameter.

|_+_|

Her er tekstfilen – alt dens tidligere innhold er erstattet!

PowerShell tekstfil Metoder Brukes til å skrive eller oppdatere tekstfiler

Hvordan skrive til tekstfil med PowerShell-tekstfilmetoder

Den første delen av denne veiledningen dekket forskjellige PowerShell Cmdlets som brukes til å skrive utdata til tekstfiler. I denne delen lærer du hvordan du utfører de samme oppgavene med PowerShell-tekstfilen Metoder .

Avsnittet starter med å lære deg hvordan du finner tilgjengelig tekstfil Metoder . Så, i påfølgende underavsnitt, vil du lære hvordan du bruker disse PowerShell Metoder å skrive, oppdatere og overskrive innholdstekstfilene.

Jeg vil bruke tekstfilen i skjermbildet nedenfor for å forklare hvordan du finner PowerShell Metoder tilgjengelig når du viser en tekstfil med Hent-innhold Cmdlet. Dessuten vil jeg bruke denne tekstfilen for eksemplene i alle underseksjonene i denne delen.

Hvordan finne PowerShell-tekstfilmetoder

For å se en liste over alle Metoder og Operatører tilgjengelig i en tekstfil, pipe utdata fra Hent-innhold kommando til Få-medlem .

Her er en eksempelkommando...

|_+_|

Kommandoen viser en haug med PowerShell Metoder . For formålet med denne veiledningen er jeg imidlertid interessert i følgende Metoder :

  • Sett inn
  • Fjerne
  • Erstatte

I tillegg vil jeg også bruke Oversikt over Metode i mine illustrasjoner. Jeg har fremhevet disse Metoder i resultatet av den siste kommandoen...

I de følgende underdelene vil du lære hvordan du bruker disse PowerShell Metoder tilgjengelig når du viser en tekstfil med Hent-innhold cmdlet.

Slik bruker du PowerShell Sett inn Metode for å legge til strenger til eksisterende tekstfil

Den generelle syntaksen til PowerShell Sett inn Metoden er…

|_+_|

De startindeks er det første tegnet i understrengen vi ønsker å sette inn en tekst før. Videre har strengverdi er teksten du vil sette inn.

En enkel måte å bestemme startindeks er å beregne Oversikt over verdien av strengen du vil sette inn en tekst rundt.

Jeg vet at det meste av det jeg har sagt kan høres ut som gresk for deg! Så la meg forklare med et eksempel i tekstfilen min.

hvordan fungerer livewave

Til å begynne med vil jeg lagre banen til filen min i en variabel. Dette vil gjøre det lettere for meg å lagre det oppdaterte innholdet senere.

|_+_|

Deretter vil jeg bruke Hent-innhold kommando for å vise innholdet i tekstfilen. Deretter lagrer du resultatet i en annen variabel...

|_+_|

Før jeg fortsetter til neste trinn, la meg ta tilbake syntaksen til PowerShell Sett inn Metode…

|_+_|

Som jeg antydet tidligere, den enkleste måten å bestemme startindeks – posisjonen i tekstfilen vi ønsker å sette inn en tekst – er å bruke Oversikt over Metode .

I dette eksemplet vil jeg sette inn ordet ikke før overskriv...

Slik bruker du PowerShell-innsettingsmetoden for å legge til tekst i eksisterende tekstfil

Det første trinnet er å bestemme Oversikt over verdien av overskriving. Kommandoen nedenfor gjør jobben...

|_+_|

Resultatet er 10.

Husk at dette Oversikt over av 10 er nøyaktig i begynnelsen av det første tegnet i ordet, overskriv.

Med dette i tankene, hvis jeg vil sette inn en streng (tekst, tall, tegn – hva som helst), før overskriving, vil jeg bruke 10 som startindeks .

Videre, hvis jeg vil sette inn noe på slutten av strengen, overskriv, vil jeg telle antall tegn fra det første tegnet – i dette tilfellet o – til slutten av strengen, overskriv – som vil være 18

Merk at mellomrom også regnes som tegn.

Men for formålet med dette eksemplet, vil jeg sette inn ordet ikke før overskriv...

Slik bruker du PowerShell-innsettingsmetoden for å legge til tekst i eksisterende tekstfil

Dette er kommandoen som gjør denne magien...

|_+_| Jeg la til et mellomrom etter for ikke å lage et mellomrom mellom ikke og overskriv.

I kommandoen, 10 er den startindeks , ikke er strengverdi . Denne kommandoen følger syntaksen til innsettingsmetoden nedenfor...

|_+_|

Og her er resultatet av den siste kommandoen i PowerShell. Resultatet inkluderer ordet vi satte inn!

Men vi er ikke ferdige ennå. Det siste trinnet er å skrive denne verdien inn i den samme tekstfilen.

For å gjøre dette må vi bruke Sett-innhold kommando. Hvis du husker, nevnte jeg i den siste delen at i motsetning til de andre 2 Cmdletene jeg diskuterte i den delen, Sett-innhold overskriver innholdet i en tekstfil.

Så for å skrive utdataene fra den siste PowerShell-kommandoen til den samme tekstfilen, kjør kommandoen nedenfor ...

|_+_|

Når jeg kjører denne siste kommandoen og åpner tekstfilen min, er ordet, ikke nå en del av strengene i tekstfilen!

Slik bruker du PowerShell-innsettingsmetoden for å legge til tekst i eksisterende tekstfil

Slik bruker du PowerShell Fjerne Metode for å slette strenger i en eksisterende tekstfil

Da jeg introduserte denne delen, nevnte jeg at jeg vil gi eksempler med PowerShell Fjerne Metode. I denne underdelen vil du lære hvordan du bruker denne PowerShell-metoden til å slette strenger fra en tekstfil.

La oss starte med syntaksen til Fjerne Metode:

|_+_| |_+_|

I den første syntaksen spesifiserer du ganske enkelt startindeks . Dessuten, i den andre syntaksen, må du spesifisere startindeks og telle .

Som jeg forklarte i den siste underdelen, kan du få startindeks ved å beregne Oversikt over av syntaksen du vil fjerne.

I tillegg, for den andre syntaksen, er telle er antall tegn – fra startindeks – du ønsker å fjerne.

Så si at vi vil fjerne strengen, ikke lagt til i tekstfilen vår i den siste underseksjonen. Det første trinnet er å bestemme Oversikt over av det første tegnet i strengen, ikke.

Fortsetter fra eksemplene i den siste underseksjonen, vil den tredje kommandoen nedenfor bestemme Oversikt over verdi:

|_+_|

Resultatet er 10…

Slik bruker du PowerShell Fjern metode for å slette strenger i en eksisterende tekstfil

Går videre, for å fjerne strengen, ikke, vil vi bruke den andre syntaksen til Fjerne Metode.

|_+_|

I mitt eksempel er startindeks er 10. Tidligere forklarte jeg at telle er antall tegn – fra startindeks – du ønsker å fjerne.

Så vi ønsker å fjerne strengen, ikke - som er 3 tegn fra startindeks . derfor telle er 3.

Basert på denne informasjonen vil kommandoen nedenfor fjerne strengen, ikke fra tekstfilen vår.

|_+_|

Her er resultatet…

Hvis du ser nøye på resultatet, vil du legge merke til at det er dobbeltrom mellom vilje og overskriving. For å fjerne ett av mellomrommene, gjør du telle 4…

|_+_|

Nå er plassen borte!

Slik bruker du PowerShell Fjern metode for å slette strenger i en eksisterende tekstfil

Til slutt, bruk PowerShell-kommandoen nedenfor for å skrive den oppdaterte teksten til filen ...

|_+_|

Etter å ha kjørt kommandoen, oppdateres filen uten strengen, ikke. Se skjermbildene nedenfor...

Slik bruker du PowerShell Erstatte Metode for å erstatte en streng i en tekstfil

I de to siste underdelene av denne delen lærte jeg deg hvordan du bruker Sett inn og Fjerne PowerShell Metoder for å skrive til en tekstfil.

I denne siste underdelen vil du lære hvordan du erstatter en streng med en annen streng. Som vanlig, la oss starte med syntaksen til Erstatte Metode:

|_+_|

I motsetning til de andre 2 metodene som krever at du bestemmer startindeks , eller telle , den Erstatte Metoden gjør det ikke. Alt du trenger for å erstatte en streng er å spesifisere strengen du vil erstatte, og deretter spesifisere den nye strengen.

For å illustrere med et eksempel, la oss gå tilbake til tekstfilen vår. I dette eksemplet vil jeg erstatte strengen, overskrive med skrive over...

Den tredje kommandoen nedenfor vil gjøre jobben. Jeg introduserte de to første kommandoene igjen, slik at jeg kan få den oppdaterte versjonen av tekstfilen i variablene mine.

I tillegg skriver den siste PowerShell-kommandoen den oppdaterte utdata til samme tekstfil ...

|_+_|

Etter å ha kjørt kommandoene, vil tekstfilen bli oppdatert. Se skjermbildet nedenfor...

Slik bruker du PowerShell-omdirigeringsoperatører for å legge til en tekstfil

Windows PowerShell har et sett med omdirigeringsoperatører . Du kan bruke to av disse omdirigeringsoperatørene til å skrive til eller oppdatere tekstfiler i PowerShell.

Jeg er klar over at omdirigeringsoperatører ikke passer inn i denne delen om å skrive til en tekstfil med PowerShell-metoder. Dette er imidlertid den eneste logiske delen jeg kan inkludere dette emnet.

For å lage en ny tekstfil og skrive til den, bruk > omdirigeringsoperatøren. Hvis du bruker denne operatoren til å skrive PowerShell-strøm til en tekstfil, overskriver den innholdet i tekstfilen.

Men hvis du ønsker å oppdatere en tekstfil uten å overskrive innholdet, bruker du >> omdirigeringsoperatøren.

For å illustrere hvordan disse operatørene fungerer, kjør følgende kommandoer.

|_+_| |_+_|

Den første kommandoen oppretter en tekstfil, E: apporterRedirectExample.txt . Deretter skriver du omdirigering inn i tekstfilen.

I tillegg legger den andre kommandoen omdirigeringslinje 2 til den samme tekstfilen. Her er kommandoene i PowerShell og et skjermbilde av tekstfilen.

Slik bruker du PowerShell-omdirigeringsoperatører for å legge til en tekstfil

Eksempler på PowerShell skrive til tekstfil

Eksempler på PowerShell skrive til tekstfil

I denne siste delen vil jeg dele flere eksempler for å skrive til en tekstfil i PowerShell. I eksemplene vil jeg bruke ferdighetene dekket i de to første delene av denne veiledningen.

Hvordan skrive PowerShell-utdata til en tekstfil og overskrive den

Det er tre måter å overskrive innholdet i en tekstfil. For det første, hvis du kjører Ut-fil kommando uten Legg til parameter, vil den overskrive innholdet i tekstfilen.

Dessuten kan du overskrive innholdet i en tekstfil med Sett-innhold kommando. Til slutt kan du bruke > omdirigeringsoperatør for å overskrive innholdet i en tekst.

For å gi noen eksempler, vil kommandoene nedenfor overskrive innholdet i tekstfilen, E: apporteroverskriv.txt :

|_+_|

Skjermbildet nedenfor viser kommandoene og det endelige innholdet i tekstfilen.

Hvordan skrive PowerShell-utdata til en tekstfil og konsoll

Hvis du vil skrive en PowerShell-utdata til en tekstfil og vise utdataene til konsollen også, kan du bruke en av disse to Cmdletene – Legg til innhold eller Sett-innhold .

De to Cmdletene har en parameter kalt Passere gjennom . Hvis du bruker Passere gjennom parameter, skriver PowerShell utdataene til den angitte tekstfilbanen; viser det deretter til konsollen også.

Men Cmdleten du bruker avhenger av om du vil legge til tekstfilen eller overskrive innholdet i tekstfilen. For å legge til tekstfilen, bruk Legg til innhold .

Men hvis du har tenkt å overskrive innholdet i tekstfilen, bruk Sett-innhold . Jeg skal illustrere med to eksempler.

For å legge til setningen er dette vedlagt av Legg til innhold , til den angitte tekstfilen, og vis meldingen på konsollen, kjør kommandoen nedenfor:

|_+_|

Skjermbildet nedenfor viser resultatet av kommandoen i PowerShell og utdata fra tekstfilen.

Hvordan skrive PowerShell-utdata til en tekstfil og konsoll

Tvert imot, for å overskrive innholdet i tekstfilen og skrive utdataene til konsollen også, bruk kommandoen nedenfor...

|_+_|

Til slutt, her er utdataene fra PowerShell-kommandoen vist på konsollen og også skrevet til tekstfilen. Denne gangen overskrev den imidlertid innholdet i tekstfilen.

Hvordan skrive PowerShell-utdata til en tekstfil uten ny linje

Hvis du kjører denne PowerShell-kommandoen, i stedet for å skrive utdataene til samme linje på tekstfilen, skriver den de to strengene, Victor og Ashiedu på to linjer...

|_+_|

Men hvis målet ditt er å skrive begge strengene på samme linje, må du inkludere en Ut-fil Cmdlet-parameter kalt NoNewline .

|_+_|

Nå har tekstfilen begge strengene på samme linje! Det er imidlertid ingen mellomrom mellom de to strengene - som i dette tilfellet er en persons for- og etternavn.

Hvordan skrive PowerShell-utdata til en tekstfil uten ny linje

For å inkludere et mellomrom mellom de to navnene, legg til et mellomrom før den andre strengen, Ashiedu. Kommandoen nedenfor er den samme som den forrige kommandoen bortsett fra mellomrom før den andre strengen.

|_+_|

Her er tekstfilen nå...

Hvis du ikke vil overskrive tekstfilen, inkluderer du Legg til parameter i den siste kommandoen.

Hvordan skrive PowerShell-utdata til en tekstfil med UTF 8-koding

De Ut-fil Cmdlet har en parameter kalt Koding . Når du skriver PowerShell-utdata til en tekstfil, kan du bruke denne parameteren til å spesifisere filkodingen.

I tillegg, hvis du ønsker å endre kodingen av en eksisterende tekstfil, kan du pipe utdataene fra Hent-innhold kommando til Ut-fil .

De Koding parameteren støtter UTF8, ASCII, UTF32 og mer. Du kan spesifisere hvilken som helst av kodingstypene.

Så siden denne underdelen handler om å skrive PowerShell-utdata til en tekstfil med UTF8-koding, er her eksempler på kommandoer som kan oppnå dette...

|_+_| |_+_|

Den første kommandoen skriver utdataene til en tekstfil med UTF8-koding.

I tillegg importerer den andre kommandoen innholdet i en tekstfil til PowerShell med Hent-innhold . Deretter skriver du det samme innholdet til en annen tekstfil med UTF8-koding.

Hvordan fikse PowerShell skrive til filtilgang nektet feil

Noen ganger når du prøver å skrive PowerShell-utdata til en tekstfil, kan du få en feilmelding om tilgang nektet. Denne feilen kan være forårsaket av flere årsaker.

En grunn til at du kan motta en tilgang nektet feilmelding er hvis du prøver å skrive til en åpen tekstfil. Hvis du prøver å skrive til en tekstfil som er i bruk av en annen Windows-prosess, kan det hende du får en feilmelding om tilgang nektet.

En annen grunn til at du kan få en tilgang nektet-feil er hvis du prøver å lage en tekstfil med et tegn som ikke støttes. For eksempel, hvis du prøver å lage en tekstfil som inneholder en / i navnet, kan du få en feilmelding om tilgang nektet.

Til slutt, hvis en tekstfil har et skrivebeskyttet attributt, vil du også motta feilmeldingen for tilgang nektet.

Så løsningen for å fikse dette problemet er å identifisere årsaken til feilmeldingen. Gjør deretter endringer.

I neste underavsnitt vil jeg lære deg hvordan du skriver PowerShell-utdata til en tekstfil som har et skrivebeskyttet attributt.

Slik bruker du PowerShell til å skrive til en skrivebeskyttet tekstfil

Hvis du prøver å skrive PowerShell-utdata til en skrivebeskyttet tekstfil, vil du motta en feilmelding om tilgang nektet. For å teste dette har jeg aktivert skrivebeskyttet for en av tekstfilene vi opprettet tidligere.

html5 offline lagring mega
Slik bruker du PowerShell til å skrive til en skrivebeskyttet tekstfil

Nå, hvis jeg prøver å skrive til tekstfilen med kommandoen nedenfor, vil jeg motta en feilmelding om tilgang nektet.

|_+_|

Den gode nyheten er at alle PowerShell-kommandoene som kan skrive til en tekstfil har en parameter kalt Makt . Hvis du inkluderer denne kommandoen i Ut-fil , Sett-innhold , eller Legg til innhold , kan du skrive til en skrivebeskyttet tekstfil.

For eksempel, hvis vi endrer den siste kommandoen som vist nedenfor, vil ikke kommandoen returnere noen feilmelding.

|_+_|

Denne gangen er kommandoen vellykket og tekstfilen er oppdatert!

Slik bruker du PowerShell til å skrive til en skrivebeskyttet tekstfil

Hvordan skrive PowerShell-utdata til en tekstfil og opprette en mappe hvis den ikke eksisterer

Som standard, hvis du kjører Ut-fil , Sett-innhold , eller Legg til innhold kommandoer og spesifisere en bane til en tekstfil som ikke eksisterer, vil filen bli opprettet.

Men hvis den angitte banen inkluderer en mappe som ikke eksisterer, vil du motta en feilmelding. For å teste dette, vil jeg kjøre kommandoen nedenfor som inkluderer en mappe, NoNewline – denne mappen finnes ikke i den angitte banen...

|_+_|

Kommandoen returnerer en feilmelding.

For å fikse dette problemet, bruk Test-Path-kommandoen for å sjekke om banen eksisterer. Deretter, hvis den ikke eksisterer, bruk Ny gjenstand kommandoen for å lage den før du kjører Ut-fil kommando.

Her er det oppdaterte manuset. Den siste linjen er den siste kommandoen i denne veiledningen...

|_+_| De Makt parameteren er det som tvinger Ny gjenstand for å opprette alle mapper som ikke finnes i banen.

For å kjøre skriptet, kopier det til et nytt PowerShell ISE-dokument og kjør det. Før jeg kjører skriptet, viser skjermbildet nedenfor at mappen ikke eksisterer...

Hvordan skrive PowerShell-utdata til en tekstfil og opprette en mappe hvis den ikke eksisterer

Etter å ha kjørt skriptet, eksisterer mappen nå i banen ...

Til slutt, hvis du åpner NoNewline mappe, finner du teksten, nonewline.txt .

Slik bruker du PowerShell-sammenkobling for å skrive til en tekstfil

Du kan bruke PowerShell til å slå sammen innholdet i to tekstfiler til en enkelt tekstfil. Prosessen med å slå sammen to tekstfiler til én kalles sammenkobling.

For å gi et eksempel opprettet jeg to filer, Prosessfil1.txt og Prosessfil2.txt . Da bruker jeg Hent-innhold for å sette sammen filene.

Til slutt piper jeg resultatet av Hent-innhold til Sett-innhold og skriv de sammenslåtte filene til en enkelt fil. Her er kommandoene...

|_+_|

Hvordan bruke PowerShell til å skrive dato og klokkeslett til en tekstfil

Det er så mange tilfeller du kanskje trenger å skrive dato og klokkeslett til en tekstfil. Et eksempel er hvis du ønsker å generere en feillogg.

Hvis du for eksempel bruker et PowerShell-skript til å utføre en oppgave på en haug med servere, er det en god idé å lage en loggfil med servere skriptet ikke kunne kobles til. Disse loggfilene kan deretter brukes til feilsøking.

I tillegg, når du oppretter slike loggfiler, er det også en god idé å inkludere et dato- og tidsstempel. På denne måten vil du vite når skriptet forsøkte å koble til serveren.

Nok av prat! La meg vise deg hvordan du skriver dato- og tidsstempler til en tekstfil med PowerShell. I dette eksemplet har jeg en liste over ikke-eksisterende datamaskiner på en tekstfil.

I skriptet nedenfor bruker jeg Test-tilkobling kommando for å pinge en datamaskin. Deretter, hvis datamaskinen svarer, vil skriptet mitt prøve å utføre noen oppgaver på den eksterne datamaskinen.

Imidlertid, hvis Test-tilkobling kommandoen ikke mottar svar fra den eksterne datamaskinen, genererer skriptet en feilmelding med gjeldende dato og klokkeslett.

Til slutt skriver skriptene feilloggene med dato- og tidsstempler inn i en tekstfil.

Her er manuset. Se nedenfor for en detaljert forklaring av hver linje...

|_+_|

For å kjøre skriptet, kopier det til et nytt PowerShell ISE-dokument, og kjør deretter skriptet. Da jeg kjørte skriptet, opprettet det en fil kalt Onsdag 02-06-2021.txt - dagens dato.

I tillegg opprettet den oppføringene tekstfilen, Onsdag 02-06-2021.txt – se skjermbildet nedenfor...

For å forklare manuset har jeg kopiert det nedenfor. Jeg har også lagt til linjenummer for å gjøre dem enkle å referere til.

|_+_|

Her er en oversikt over dette tilsynelatende komplekse PowerShell-skriptet:

  1. I Linje 1 , jeg brukte Hent-innhold kommandoen for å importere listen min over servere til PowerShell. Serverne lagres i en tekstfil – Get-Content E: eportsITGServers.txt. Til slutt lagret jeg resultatet av listen over servere i en variabel kalt Servere .
  2. Så, i Linje 2 Jeg opprettet navnet på tekstfilen som jeg vil lagre feilmeldingene mine. Jeg brukte Get-Date kommandoen for å lage tekstfilen.

    I linje 10 vil jeg skrive PowerShell-skriptet som skriver feilloggene inn i tekstfilen - mer om dette senere. Til slutt, for å kunne bruke denne filen senere i skriptet, lagret jeg den i en variabel kalt loggfilnavn .
  3. Manuset fortsetter inn Linje 3. I denne linjen introduserer jeg For hver Metode . Denne metoden lar meg iterere innholdet i filen som er lagret i Servere variabel.

    Det er to viktige elementer i For hver Metode introdusert i linje 3 – ( og {. Den første åpningsparentesen, ( åpner For hver Metode . Dessuten åpner braketten, { For hver kommandosetningsblokk.
  4. Så, i Linje 4 , jeg pinger hver server som er lagret i Servere variabel. Under hver syklus av For hver blokkere iterasjon, tar den et servernavn fra Servere variabel – lagrer den i en automatisk variabel, $_ – bruker deretter servernavnet lagret i $_ som datamaskinnavn i ping-testen.

    Nok en gang, for å gjøre det enkelt å få tilgang til resultatet av ping-testen, lagrer jeg resultatet i en annen variabel kalt PingTest . Resultatet av ping-testen vil enten være ekte eller Falsk .
  5. I Linje 5 , introduserer jeg IF-setningsblokken. Deretter, i tilstand del av blokken (), for hver server, tester jeg om resultatet av ping-testen, lagret i PingTest variabel er ekte eller Falsk .

    Videre, hvis resultatet av ping-testen er ekte , utfører PowerShell-skriptet oppgaven i kommandoblokken til IF-setningen. Kommandoblokken til IF-setningen åpnes med en { parentes i linje 5.
  6. Så, i Linje 6 , kjører jeg kommandoen i IF-setningsblokken. I Linje 7 , lukker jeg IF-setningens kommandoblokk med en avsluttende parentes, }.
  7. Linje 8introduserer Ellers setningsdel av IF-setningsblokken. I denne blokken kjører jeg kommandoen jeg vil kjøre på alle servere som returnerte False til ping-testen.
  8. I Linje 9 , genererer skriptet gjeldende dato og klokkeslett. Deretter lagrer den resultatet i en variabel kalt dato og tidsstempel . Skriptet vil bruke denne variabelen i linje 10
  9. Så, i Linje 10 , skriver PowerShell-skriptet gjeldende dato og klokkeslett inn i tekstfilen jeg opprettet i linje 2. Kommandoen i linje 9 er i 3 deler.

    I den første delen genererer skriptet en del av feilmeldingen. Denne delen inkluderer dateandtimestamp-variabelen og noen mellomrom.

    Så i delen av kommandoen (meldingen), inkluderer skriptet en faktisk melding - Serveren, $_ ble hoppet over fordi den ikke svarte på ping. Den automatiske variabelen, $_ er den samme variabelen generert av ForEaxch uttalelse i Linje 4 .

    Til slutt sendes hele meldingen til Out-File-kommandoen – denne er inne Linje 11 .
  10. Linje 12lukker Ellers setningskommandoblokk med en avsluttende parentes, }.
  11. Så, i Linje 13 , lukker skriptet For hver setningskommandoblokk med en klokke en avsluttende parentes, }.
  12. Til slutt, i Linje 14 , lukker skriptet For hver Metode med den lukkende braketten, ). De For hver Metode ble åpnet i linje 3.

Bruk PowerShell til å skrive til tekstfil: Ofte stilte spørsmål

Bruk Powershell til å skrive til tekstfil: Ofte stilte spørsmål 1. Hvordan sender jeg PowerShell-resultater til en tekstfil?

Det er tre måter å sende PowerShell-resultater til en tekstfil.

For det første kan du bruke > operatoren ved siden av resultatet du vil sende til en tekstfil, etterfulgt av et mellomrom, deretter hele banen til tekstfilen.

I tillegg kan du bruke Out-File-kommandoen Cmdlets. For å bruke Out-File, overfør (|), utdataene fra PowerShell-resultatet til Out-File etterfulgt av et mellomrom, deretter hele banen til tekstfilen.

Til slutt kan du legge til PowerShell-resultater til en eksisterende tekstfil ved å bruke Add-Content. Bruken ligner på Out-File forklart tidligere.

2. Hvordan lagrer jeg en tekstfil i PowerShell?

Du kan bruke Ny gjenstand cmdlet for å lage en ny tekstfil i PowerShell. For å legge til elementer i tekstfilen og lagre den automatisk, bruk Legg til innhold cmdlet.

3. Hvordan leser jeg en fil i PowerShell?

Bruke Hent-innhold cmdlet for å lese innholdet i en tekstfil i PowerShell. For eksempel, for å lese innholdet i D: ext.txt, bruk kommandoen Get-Content D: ext.txt

Hvordan leser jeg en fil i PowerShell

4. Hvordan vil du vise verdien lagret i en variabel i PowerShell-konsollen?

Skriv inn navnet på variabelen i PowerShell og trykk enter-tasten. Verdien som er lagret i Powershell-variabelen vil vises i konsollen. For eksempel for å vise verdiene som er lagret i $Content variabel, skriv inn $Console i PowerShell og trykk enter-tasten.

Hvordan vil du vise verdien lagret i en variabel i PowerShell-konsollen?

5. Hvordan legger du til i PowerShell?

Den enkleste måten å legge til i PowerShell er å skrive inn tallene atskilt med tilleggstegnet (+), og deretter trykke enter-tasten. For eksempel, for å legge til 2 og 5, skriv inn 2 + 5 , og trykk deretter på enter. Svaret vises i konsollen.

Hvordan legger du til i PowerShell

Det er det! Vår oppdaterte guide med omfattende eksempler for å skrive PowerShell-utdata til en tekstfil.

Jeg håper du syntes denne S-sonen var nyttig. Hvis du syntes det var nyttig, vennligst stem Ja til spørsmålet Var dette innlegget nyttig nedenfor.

Alternativt kan du stille et spørsmål, legge igjen en kommentar eller gi tilbakemelding med Legg igjen et svar-skjemaet mot slutten av denne siden.

Til slutt, for flere PowerShell S-soner, besøk vår Windows PowerShell-veiledningsside. Du kan også finne vår Work from Home-side veldig nyttig.

Referanser og videre lesning

  1. Ut-fil
  2. Legg til innhold
  3. Sett-innhold
  4. Ut-Null
  5. Get-Date
  6. about_Redirection