Slik sletter du mapper eller filer med PowerShell

18. august 2021 10262 Visninger Slik sletter du mapper eller filer med PowerShell

Vil du slette filer og mapper med PowerShell, men vet ikke hvordan? Denne artikkelen vil gi deg en trinn-for-trinn-guide for hvordan du bruker PowerShell til å slette en mappe, fil eller alle mapper og filer i en spesifisert bane.





Dette blogginnlegget lærer deg forskjellige måter å slette mapper og filer ved hjelp av PowerShell. Hvis dette høres interessant ut, fortsett å lese!



Veiledningen starter med å forklare 2 måter å bruke PowerShell til å slette mapper og filer. Så, i den andre delen, lærer du hvordan du fikser vanlige feil knyttet til sletting av filer og mapper med PowerShell.

Til slutt inneholder guiden mer enn 20 eksempler.



Bla gjennom innleggsemner



2 måter å slette mappe eller fil med PowerShell

PowerShell tilbyr to måter å slette elementer på. Du kan slette en mappe eller fil med PowerShell Delete Method.

For det andre kan du bruke Remove-Item til å slette elementer i PowerShell. I de neste 2 underdelene av denne delen lærer du hvordan du bruker disse metodene.



Metode 1: Bruk Powershell Slett() Metode for å slette en mappe eller fil

For at PowerShell skal slette en mappe trenger du Get-ChidItem Cmdlet. Get-ChildItem Cmdlet returnerer elementene og underordnede elementene på et spesifisert sted.



For å liste alle filer og mapper i banen E: rapporterer , kjør kommandoen nedenfor:

|_+_|

Her er resultatet i PowerShell...

Slik bruker du Powershell Delete()

Denne kommandoen har en metode kalt Slett . Du kan bruke Slett Metode for å slette mapper og filer.

For å se tilgjengelige metoder i kommandoen ovenfor, overfør kommandoen til Get-Member Cmdlet.

|_+_|

Kommandoen returnerte to typer egenskaper. en , System.IO.DirectoryInfo (se det første bildet nedenfor). to , System.IO.FileInfo . Den første er relatert til mapper i banen, mens den andre gjelder filer.

Se nøye på de to bildene. Legg merke til at hver av dem har en metode kalt Slett . Du kan bruke Slett Metode i PowerShell for å slette en mappe eller fil.

deaktiver ny youtube-layout

I neste underavsnitt vil jeg vise hvordan du bruker Slett Metode.

Hvordan å bruke Slett () Metode i Powershell for å slette en mappe eller fil

Syntaksen til Slett Metoden er:

|_+_|

Gjenstand er mappen med fildetaljer som returneres av Get-ChidItem Cmdlet. Dessuten, Slett er metoden som vanligvis følges av ()-operatoren.

For å gjøre det enkelt å forstå syntakskommandoen ovenfor, er den originale Get-ChildItem-kommandoen:

|_+_|

og resultatet...

Slik bruker du Powershell Delete()

Basert på det jeg har forklart så langt, i teorien, kan du bruke PowerShell Delete Method for å slette mappen kalt rapporter ved å kjøre kommandoen nedenfor:

|_+_|

Den siste kommandoen returnerer imidlertid feilmeldingen Katalogen er ikke tom.

For å løse dette problemet trenger jeg en kommando som returnerer alle filer og mapper, og undermapper i banen. Deretter må jeg overføre resultatet til en ForEach-løkke.

Her er den modifiserte kommandoen:

|_+_|

Her er kommandoen i PowerShell. Alle filene er slettet fra den angitte banen.

Den siste kommandoen sletter filene i den angitte mappen og dens undermapper. Det sletter imidlertid ikke mappene.

For å slette mappene, kjør kommandoen nedenfor:

|_+_|

For å bekrefte det E: rapporterer er nå tom, vil jeg kjøre kommandoen Get-ChildItem igjen.

|_+_|

Det gir ingenting!

Før jeg går videre til neste seksjon, la meg forklare hvordan denne kommandoen slettet alle filer og undermapper.

|_+_|

Get-ChildItem har to parametere kalt Inkludere og Gjentakelse . I kommandoen brukte jeg - Inkluder *.* å fortelle PowerShell å inkludere hver fil i resultatet.

Gjentakelse , derimot, forteller Get-ChildItem å returnere alle mapper og undermapper.

I den andre delen av kommandoen overførte jeg Get-ChildItem til ForEach-setningen. ForEach går gjennom alle objekter som returneres av Get-ChildItem og bruker Slett Metode for å slette dem.

Som jeg allerede nevnte da jeg introduserte denne delen, har PowerShell en cmdlet kalt Fjerne gjenstand nærmere bestemt. Du kan også bruke denne PowerShell Cmdleten til å slette en mappe eller en fil.

Den neste delen dekker hvordan du bruker Fjerne gjenstand . Etter min erfaring bruker Fjerne gjenstand er bedre enn å bruke Slett() Metode.

Metode 2: Bruk Powershell Fjerne gjenstand Cmdlet for å slette en mappe eller fil

For å slette en fil eller mappe med Fjerne gjenstand du må fortsatt bruke PowerShell Cmdlet, Get-ChildItem. Rør deretter resultatet til Fjerne gjenstand .

Du kan løpe Fjerne gjenstand uten Get-ChildItem . Men fra min erfaring, for de fleste tilfeller, fungerer det best å liste varen med Get-ChildItem . Rør deretter utgangen til Fjerne gjenstand .

I mitt første eksempel i denne delen vil jeg bruke PowerShell til å slette mappen kalt ITGServer2. Se skjermbildet nedenfor.

Metode 2: Bruk Powershell Remove-Item Cmdlet for å slette en mappe eller fil

Her er PowerShell-kommandoen som vil slette mappen ...

|_+_|

Etter å ha kjørt kommandoen ovenfor, er mappen borte!

Metode 2: Bruk Powershell Remove-Item Cmdlet for å slette en mappe eller fil

I mitt andre eksempel ønsker jeg å slette mappene og undermappene i E: apporter. Kommandoen nedenfor vil gjøre jobben ...

|_+_|

Etter å ha kjørt den siste kommandoen, er alle mappene i den angitte mappen borte!

Metode 2: Bruk Powershell Remove-Item Cmdlet for å slette en mappe eller fil

Hvordan fikse vanlige feil med Powershell Slett mappe eller fil

Hvordan fikse vanlige feil med Powershell Slett mappe eller fil

Når du kjører kommandoen Remove-Item PowerShell for å slette en mappe eller fil, kan det returnere noen feil. Denne delen dekker noen av disse feilene og hvordan du kan fikse dem.

Jeg føler at det er bedre å diskutere løsninger på disse vanlige feilene før vi dykker inn i noen virkelige sysadmin-eksempler på hvordan du bruker PowerShell til å slette mapper eller filer.

Slik fikser du Powershell slette mappe eller filtilgang nektet feil

Hvis du kjører Remove-Item for å slette en fil eller mappe og mottar en Access Denied-feilmelding, prøv følgende:

  1. Endre eieren av filen eller mappen – bruk kodene nedenfor for å endre eieren av en fil eller mappe til den lokale administratoren

For å kjøre denne kommandoen, åpne PowerShell som administrator, ellers vil den siste kommandoen mislykkes.

|_+_| Endre mappebanen, F:ITGFilesTextfiles til hele banen til filen eller mappen

Når du har endret eieren til den lokale administratoren, prøv å kjøre å slette filen eller mappen igjen med PowerShell. Hvis det ikke fungerer, prøv disse rettelsene.

  1. Legg til Makt parameter til Remove-Item
  2. Prøv Delete()-metoden i stedet. Hvis du ikke vet hvordan du bruker PowerShell Delete()-metoden, se hvordan du bruker Delete()-metoden i Powershell for å slette en mappe eller fil (lenken åpnes i en annen nettleserfane) i denne veiledningen.

Slik fikser du Powershell-slettemappe kan ikke fjernes fordi den ikke er tom feil

Hvis du mottar kan ikke fjernes fordi det ikke er tomt feil når du kjører kommandoen:

|_+_|

Prøv å bruke Get-ChildItem med Recurse-parameteren. Deretter, rør den til Remove-Item med Makt og Gjentakelse parametere.

Her er en eksempelkommando:

|_+_|

Alternativt kan du kjøre Get-ChildItem og spesifisere stjerner bak den siste skråstreken i banen. Dette sletter alt innholdet i mappen.

For eksempel, hvis jeg kjører kommandoen...

|_+_|

...og motta Kan ikke fjernes fordi den ikke er tom, for å fikse problemet, kjører jeg først kommandoen nedenfor:

|_+_|

Den siste kommandoen sletter bare elementene i E: apporter. Til slutt, for å slette mappen (som nå er tom), vil jeg kjøre kommandoen nedenfor ...

|_+_|

Slik fikser du Powershell-slettemappe brukt av en annen prosessfeil

Slik fikser du Powershell Delete Folder

Hvis du mottar Remove-Item returnerer feilmeldingen fordi den brukes av en annen prosess, må du inkludere Force-parameteren.

Her er originalen som returnerte feilmeldingen ...

|_+_|

For å fikse dette problemet, kjør kommandoen nedenfor for en fil:

|_+_|

Den siste kommandoen slettet filen...

Slik fikser du Powershell Slett mappe eller filmappe eller filnavn for lang feil

Dette ser ut til å være en kjent begrensning med PowerShell.

For å fikse dette problemet kan du imidlertid bruke til deg cmd kommando. Deretter overfører du resultatet til kommandoen Remove-Item.

Her er et eksempel...

|_+_| Dir-kommandoen er cmd-ekvivalenten til PowerShells Get-ChildItem.

Slik fikser du Powershell Slett mappetilgang til banen nektes feil

PowerShell Remove-Item-kommandoen sender feilmeldingen Access To The Path Is Denied hvis du prøver å slette en mappe du ikke har tillatelse til å slette.

Grunnen til at du får denne feilmeldingen er at du ikke har tilgang til mappen. Før du kjører kommandoen Remove-Item, kjør følgende kommandoer for å gi lokale administratorer tilgang til mappen.

Denne løsningen forutsetter at kontoen du brukte til å logge på er medlem av den lokale administratorgruppen. Før du kjører kommandoen nedenfor i PowerShell ISE, endre banen F:ITGFilesTextfiles til mappebanen du prøver å slette. |_+_|

Når du er ferdig med å kjøre skriptet ovenfor, kjør kommandoen Remove-Item på nytt.

Flere Powershell-eksempler på slett mappe eller fil

Flere Powershell-eksempler på slett mappe eller fil

Denne siste delen av veiledningen dekker flere eksempler på hvordan du bruker PowerShell til å slette filer eller mapper.

Slik sletter du en mappe eller fil med PowerShell hvis den eksisterer

Siden dette eksemplet har en betingelse – hvis mappen eller filen eksisterer – kontrollerer den første banen til kommandoen om elementet eksisterer.

Du kan bruke Test-Path kommando for å sjekke om en mappe eller fil eksisterer. Deretter bruker du den betingede IF-setningen til å fjerne mappen eller filen hvis den eksisterer.

Vi kan kombinere begge kommandoene i IF-setningsblokken...

I dette eksemplet ønsker jeg å slette en mappe kalt ITGServer i banen F:ITGFilesTextfiles – hvis mappen eksisterer.

Her er kommandoen...

|_+_|

I dette eksemplet eksisterer denne mappen, så den ble slettet. Men hvis vi prøver kommandoen med en fil som ikke eksisterer, vil vi motta meldingen i Ellers blokk av IF-setningen.

Slik sletter du en mappe og dens undermapper med PowerShell

For å slette en mappe og alle undermapper, kjør Fjerne gjenstand kommando med Gjentakelse og Makt parametere.

Her er et eksempel...

|_+_|

Slik sletter du en mappe eller fil eldre enn x dager (eller basert på dato) med PowerShell

I dette eksemplet, siden vi ønsker å slette filer eller mapper som er eldre enn x dager, er det første trinnet å få dagsreferansen. Dette gjøres med kommandoen Get-Date.

Men siden vi ønsker å slette elementer som er eldre enn x dager, må vi spesifisere x dager som en negativ verdi. For eksempel, for å slette alle filer eller mapper som er eldre enn 7 dager, hent dagsreferansen med kommandoen nedenfor:

|_+_|

Deretter bruker du Get-ChildItem kommando for å få LastWriteTime eiendommen til varen. De LastWriteTime egenskap registrerer siste dato en mappe eller fil ble endret.

I tillegg til det LastWriteTime egenskap, returnerer kommandoen Get-ChildItem en annen egenskap kalt PSIsContainer . PSIsContainer-egenskapen skiller en fil fra en mappe.

Hvis PSIsContainer er sant, betyr det at elementet er en mappe. På den annen side, hvis PSIsContainer er falsk, betyr det at elementet er en fil.

Før jeg introduserer LastWriteTime-egenskapen, la meg først kjøre en Get-ChildItem-kommando og filtrere etter PSIsContainer-egenskapen:

|_+_|

Denne kommandoen returnerte et enkelt objekt kalt ITG fordi dette er den eneste mappen i banen F:ITGFilesTextfiles.

Alternativt, for å liste bare filer i banen, kjør kommandoen nedenfor:

|_+_|

Denne gangen, fordi jeg spesifiserte av $ _. PSIsConta går ned -eq $FALSE , PowerShell returnerer alle ikke-mapper.

Nå som du forstår hvordan du viser mapper eller filer i en mappe, la oss introdusere LastWriteTime-egenskapen. Som jeg nevnte tidligere, er den siste datoen og klokkeslettet elementet ble endret registrert i LastWriteTime-egenskapen.

Disse kommandoene inkluderer LastWriteTime-egenskapen:

|_+_|

Den første kommandoen returnerer alle mapper som sist ble endret før dagreferansen lagret i $DaysRef-variabelen. I dette eksemplet er dagsreferansen 7 dager.

Tvert imot returnerer den andre kommandoen alle filene som er endret siste x dager - hvor x dager tilsvarer 7 i dette eksemplet.

Den andre og siste fasen av dette eksemplet som bruker PowerShell til å slette mapper med filer som er eldre enn x dager, er å overføre Where-Object-kommandoen til Remove-Item.

Skriptet nedenfor fullfører oppgaven med å slette filene og mappen ...

casting kodi til roku
|_+_| Hvis ingen filer eller mapper oppfyller LastWriteTime-kriteriene, vil ingen bli slettet.

Hvordan bruke PowerShell for å slette bare mappeinnhold

I dette eksemplet vil jeg slette innholdet i F:ITGFilesmappen, men ikke selve mappen.

Hvis du bare vil slette innholdet i en mappe, men beholde mappen, kjør kommandoen Remove-Item som vist i eksemplet nedenfor:

|_+_|

Trikset er å legge til en stjerne etter den siste skråstreken på slutten av mappebanen.

De Gjentakelse parameter sletter alle mapper og undermapper i den angitte banen. I dette eksemplet, F:ITGFilesmappe*

Hvordan bruke PowerShell til å slette mappe og innhold uten bekreftelse eller spørsmål

Trikset for å slette en mappe og innhold uten å spørre deg om bekreftelse er å legge til Makt og Bekreft:$false parametere til Fjerne gjenstand kommando.

Hvis jeg kjører kommandoen nedenfor uten å legge til Bekreft:$false parameter, vil jeg kunne bekrefte at jeg ønsker å slette mappen og alt innholdet.

|_+_|

Men hvis jeg ikke ønsker å motta denne bekreftelsesmeldingen, vil jeg inkludere Confirm:$false-parameteren.

|_+_|

Kommandoen skal kjøre uten å spørre om å bekrefte handlingen. Vær også oppmerksom på at parameteren som stopper bekreftelsesmeldingen er Bekreft:$false .

Hvis den siste kommandoen fortsatt ber om bekreftelse, kjør først Get-ChildItem kommando. Send deretter utdataene til kommandoen Remove-Item som vist nedenfor:

|_+_|

Dessverre sletter ikke den siste kommandoen den overordnede mappen. For å slette den overordnede mappen og alt innholdet, legg til parameteren -filter i Get-ChildItem-kommandoen som vist i denne kommandoen:

|_+_|

Hvordan bruke PowerShell til å slette en mappe eller fil til papirkurven

Hvis du sletter en mappe eller fil med kommandoen Remove-Item, slettes den permanent. Mappen flyttes med andre ord ikke til papirkurven.

Dessverre er det ingen PowerShell Cmdlet for å slette en mappe eller fil til papirkurven. Jeg prøvde å lage en egendefinert funksjon for denne oppgaven. Imidlertid fant jeg en eksisterende funksjon opprettet av en stackoverflow.com bidragsyter.

For å gjøre den tilgjengelig for våre lesere lastet jeg opp en kopi av funksjonen til S Zone. Følg trinnene nedenfor for å laste ned og bruke funksjonen:

  1. Klikk last ned Remove-ItemToRecycleBin.zip for å laste ned funksjonen
  2. Pakk deretter ut den nedlastede zip-filen. Når du pakker ut filen, vil den opprette en mappe som heter Remove-ItemToRecycleBin.
  3. Til slutt kopierer du mappen til din Windows 10 PowerShell-profilmapp. Mappen ligger i banen nedenfor
|_+_| er ditt Windows 10-profilnavn. Dette er vanligvis plassert i C:Users. Men hvis den ikke er i stasjon C, se på stasjon D eller E.

Når du har kopiert modulmappen modulmappen din, kan du bruke den som enhver annen PowerShell-kommando. For å illustrere hvordan det fungerer, vil jeg slette E: apporter til papirkurven.

Før jeg kjører kommandoen, er her et skjermbilde av den tomme papirkurven min.

Hvordan bruke PowerShell til å slette en mappe eller fil til papirkurven

Nå, for å bruke PowerShell til å slette mappen, E: apporterer til papirkurven, kjører jeg kommandoen nedenfor:

|_+_|

Etter å ha kjørt kommandoen ovenfor, flyttes rapportmappen til papirkurven. Se skjermbildet nedenfor...

Hvordan bruke PowerShell til å slette en mappe eller fil og ekskludere andre mapper eller filer

Kommandoen Remove-Item har en Utelukke parameter. Denne parameteren brukes til å ekskludere en mappe eller fil som du ikke ønsker å slette.

Her er et eksempel. Jeg ønsker å slette alle mappene i banen, F:ITGFilesTextfiles5. Jeg ønsker imidlertid ikke å slette mappe3.

Hvordan bruke PowerShell til å slette en mappe eller fil og ekskludere andre mapper eller filer

Som du kan se fra skjermbildet ovenfor, har mappen både mapper og filer.

For å slette bare mapper, må jeg først bruke kommandoen Get-ChildItem for å liste opp alle elementene i banen. Send deretter utdataene til Where-Object og filtrer etter PSIsContainer-egenskapen.

|_+_|

Etter å ha kjørt den siste kommandoen, slettes alle mapper, men ikke mappe3. Du legger også merke til at filer i F:ITGFilesTextfiles5 ikke ble slettet.

Grunnen til at bare mapper ble slettet er at innenfor Hvor-objekt blokk, filtrerte jeg etter {$_.PSIsContainer -eq $TRUE}. PSIsContainer-egenskapen spesifiserer at et objekt er en mappe.

Hvis du går videre, har Remove-Item også en parameter kalt Inkluder. Denne parameteren utfører den motsatte handlingen til Exclude-parameteren.

Jeg kan oppnå samme resultat som den siste kommandoen ved å erstatte Ekskluder med Inkluder. Men i motsetning til forrige kommando, vil jeg nå liste opp mappene jeg vil slette.

Her er en eksempelkommando som sletter bare mappe1 fra F:ITGFilesTextfiles5.

|_+_|

Etter å ha kjørt den forrige kommandoen, vil du legge merke til at bare mappe1 ble slettet.

Hvis du vil slette filer i stedet for mapper, endre $_.PSIsContainer -eq $TRUE til $_.PSIsContainer -eq $FALSE

Hvordan bruke PowerShell til å slette en mappe selv om den ikke er tom

Hvis du ønsker å slette en mappe med PowerShell – selv om mappen ikke er tom – ta med Makt og Gjentakelse parametere. Her er et eksempel.

|_+_|

Hvordan bruke PowerShell til å slette tomme mapper eldre enn X dager

Følg trinnene nedenfor for å bruke PowerShell til å slette tomme mapper som er eldre enn x dager...

I dette eksemplet ønsker jeg å slette mapper som er eldre enn 90 dager fra min Windows 10-profil, C:UsersVictorA.

  1. Bruk Get-ChildItems for å liste bare mapper i den angitte banen:
|_+_|

Kommandoen viser alle mapper i den angitte banen. Hvis du husker, i tidligere kommandoer i denne veiledningen, for å returnere mapper, brukte vi Hvor-objekt å filtrere etter PSIsContainer eiendom. Imidlertid bestemmer jeg meg for å oppnå samme resultat ved å bruke Katalog parameter av Get-ChildItem .

  1. Send deretter resultatet av kommandoen Get-ChildItem til Where-Object. Innenfor Where-Object-kommandoen legger du til et filter som bare returnerer tomme mapper. Her er kommandoen...
|_+_|
  1. Nå må vi legge til banen som returnerer mapper i forrige liste eldre enn 90 dager. Dette innebærer to kommandoer.

I den første kommandoen vil jeg bruke Get-Date for å bestemme datoen for tidsperioden. I eksempelet for 90 dager siden. For å gjøre det enklere vil jeg lagre resultatet i en variabel kalt $DaysRef.

|_+_|

Så, i den andre kommandoen, vil jeg inkludere et annet filter i Where-Object-delen av den siste kommandoen.

|_+_|

Her er resultatet av den siste kommandoen...

Hvordan bruke PowerShell til å slette tomme mapper eldre enn X dager

Som du kan se, returneres nå bare to tomme mapper av den siste kommandoen. Jeg kjørte denne kommandoen 4. august 2021. Som du kan se, LastWriteTime av de to mappene er 16/06/2021 16:29.

For amerikanske lesere er denne datoen 16. august 2021 (16.06.2021)

Dette betyr at siste gang de to mappene sist ble endret er mer enn 90 dager fra jeg kjørte kommandoen.

  1. Til slutt, for å slette disse tomme mappene som er eldre enn 90 dager, kan du overføre den siste kommandoen til Remove-Item PowerShell-kommandoen.
|_+_|

Slik bruker du PowerShell til å slette brukerprofilmappen

For å slette brukerprofilmappen med kommandoene i denne delen, MÅ du åpne PowerShell som administrator . Ellers kan du få en feilmelding om tilgang nektet

Det første trinnet for å bruke PowerShell til å slette en brukers profilmappe er å bestemme banen til brukerens mappe. PowerShell har en miljøvariabel som returnerer banen til Windows-installasjonskatalogen.

Variabelen er…

|_+_|

Denne kommandoen returnerer en bane som C:WINDOWS. I mellomtiden er brukermappen (som inneholder alle brukerprofilmapper) plassert i roten på stasjonen der Windows er installert.

I mitt eksempel er brukermappen plassert i stasjon C:WINDOWS.

For å returnere C:, fra C:WINDOWS, bruk imidlertid splitmetoden som vist i kommandoen nedenfor.

|_+_|

Kommandoen returnerer C: og WINDOWS. Neste trinn er å returnere C: – dette er det første elementet i matrisen.

Slik bruker du PowerShell til å slette brukerprofilmappen

For å få tilgang til dette elementet, inkluderer denne [0] til den siste kommandoen som vist nedenfor.

|_+_|

Nå har vi C:

Slik bruker du PowerShell til å slette brukerprofilmappen

Jeg nevnte tidligere at alle brukerprofiler ligger i mappen Brukere. Fra den siste kommandoen vil jeg legge til Users til returen C:Users

|_+_|

Nå har vi hele banen til brukermappen.

I den neste kommandoen vil jeg bruke Get-ChildItem til å liste opp alle brukerprofilmappene i Users-mappen. Men for å unngå feil, vil jeg først lagre den siste kommandoen i en variabel.

|_+_|

Nå kan jeg bruke Get-ChildItem til å returnere alle brukerprofilmappene i Users-mappen. Her er kommandoen:

|_+_|

Og resultatet i PowerShell...

Slik bruker du PowerShell til å slette brukerprofilmappen

Den siste biten vil være å sende den siste kommandoen til Remove-Item. Du må imidlertid bruke filterparameteren for å slette bare brukerprofilmappen du vil bli kvitt.

I dette eksemplet ønsker jeg å slette brukerprofilmappen kalt victo og alle undermappene

Her er den siste kommandoen som bruker PowerShell til å slette brukerprofilmappen:

|_+_|

Etter å ha kjørt denne kommandoen, nå hvis du kjører kommandoen nedenfor, vil den slettede profilen ikke lenger være oppført.

|_+_|

Slik bruker du PowerShell til å slette mapper fra appdata

PowerShell har to miljøvariabler for en pålogget brukers AppData-mappe.

|_+_|

Miljøvariabelen du velger å bruke avhenger av plasseringen til mappen du vil slette. Men hvis du ikke er sikker på plasseringen til mappen du vil slette, kan du søke i begge stedene.

For å oppnå dette vil jeg lagre begge miljøvariablene i en variabel kalt $appdatafolders...

|_+_|

Deretter vil jeg bruke ForEach-løkken til å sjekke begge stedene. Her er koden som gjør denne jobben...

|_+_| Jeg inkluderte WhatIf-parameteren slik at PowerShell ikke sletter mappen. I stedet vil PowerShell vise handlingen den skulle utføre hvis WhatIf-parameteren ikke var inkludert.

Her er resultatet av kommandoen i PowerShell. Bildet til høyre på skjermbildet er mappen i AppData-mappen min.

Slik bruker du PowerShell til å slette mapper fra appdata

Slik bruker du PowerShell til å slette skjult mappe

Kommandoen Get-ChildItem har en parameter kalt Hidden. Hvis du vil vise skjulte mapper i en spesifisert mappe, inkluderer du parameteren Skjult.

I skjermbildet mitt nedenfor har jeg 3 mapper (ikke eller skjult).

For å demonstrere hvordan du bruker PowerShell til å slette skjulte mapper, vil jeg skjule Textfiles3. Nå er mappen skjult.

Slik bruker du PowerShell til å slette skjult mappe

For å liste opp den skjulte mappen, vil jeg kjøre kommandoen nedenfor ...

|_+_|

Som forventet viser kommandoen bare den skjulte mappen.

For å slette den skjulte mappen med PowerShell, vil jeg nå sende den siste kommandoen til kommandoen Remove-Item.

|_+_|

For å bekrefte at mappen ble slettet, aktiverte jeg attributtet Vis skjulte elementer i Filutforsker.

Slik bruker du PowerShell til å slette skjult mappe

Slik bruker du PowerShell til å slette filer, men beholde mappestrukturen

Det kan være tilfeller der du ønsker å slette alle filene i en mappe, inkludert undermappene, men beholde mappestrukturen.

express vpn fungerer ikke på Netflix

For å oppnå dette må du kjøre kommandoen Get-ChildItem og spesifisere File-parameteren. Når du bruker filparameteren, viser Get-ChildItem bare filer i den angitte mappen.

For å demonstrere hvordan dette fungerer, har jeg laget en mappestruktur vist i skjermbildet nedenfor:

Slik bruker du PowerShell til å slette filer, men beholde mappestrukturen

Som vist på skjermbildet har mappe1 to undermapper, mappe2 og mappe3. Videre har mappe2 og mappe3 noen filer.

For å bruke Get-ChildItem til å vise bare filer i banen, F:ITGFilesfolder1, kjører jeg kommandoen nedenfor:

|_+_|

Kommandoen viser bare filer i de to banene, F:ITGFilesfolder1folder2 og Directory: F:ITGFilesfolder1folder3

Til slutt, for å slette filene, men beholde mappestrukturen, piper du den siste kommandoen til Remove-Item...

|_+_|

Kommandoen sletter alle filene, men lar mappestrukturen være intakt!

Slik bruker du PowerShell til å slette registernøkkelmappe

Kommandoen for å liste opp og slette en registernøkkelmappe er den samme kommandoen som brukes til å slette vanlige mapper.

Hvis du har lest denne veiledningen fra begynnelsen, har vi brukt to kommandoer så langt:

Get-ChildItem : brukes til å liste elementer i en spesifisert bane
Fjerne gjenstand : brukes til å slette filene/mappene oppført av Get-ChildItem

Den eneste forskjellen er imidlertid hvordan du får tilgang til registernøkkelmapper.

Det er flere måter å formatere en registernøkkel for bruk i kommandoene Get-ChildItem og Remove-Item. For dette eksemplet vil jeg imidlertid bruke metoden nedenfor:

|_+_|

I dette eksemplet vil jeg ha tilgang til registernøkkelmappen, HKEY_CURRENT_USERKontrollpanelDesktop. Som du kan se i kommandoformatet ovenfor, for å gjøre dette, la jeg til ordet register, etterfulgt av to kolon, ::

For å lære mer om hvordan PowerShell fungerer med Windows-registeret, les vår guide – Slik bruker du PowerShell til å lese registerverdi .

Flytt eksemplet til neste trinn, for å liste opp elementene i registernøkkelmappen ovenfor, kjør kommandoen nedenfor:

|_+_|

Kommandoen viser alle undernøkkelmappene i den angitte registernøkkelmappen.

Hvis jeg vil slette en spesifisert mappe, kjører jeg Get-ChildItem først. Deretter sender jeg utdataene til Select-Object

|_+_|

Kommandoen ovenfor viser den fullstendige banen til alle undernøklene i min opprinnelige registernøkkelmappe:

Slik bruker du PowerShell til å slette registernøkkelmappe

Deretter, for å slette undernøklene, sender jeg den siste kommandoen til Remove-Item. Men for å slette en bestemt undernøkkelmappe, vil jeg først sende den siste kommandoen til Where-Object og filtrere etter navnet på undernøkkelen jeg vil slette:

|_+_|

Den siste kommandoen returnerer nå bare den angitte registerundernøkkelmappebanen.

Til slutt, for å slette denne mappeundernøkkelen med PowerShell, piper du den siste kommandoen til Remove-Item. Før da, men du må endre registernøkkelen og sende den til Get-Item.

For å gjøre det enkelt, vil jeg lagre den siste kommandoen i en variabel

|_+_|

Deretter formaterer du den for Get-Item-kommandoen

|_+_|

Send til slutt den formaterte nøkkelbanen til Get-Item...

|_+_|

Nå kan vi slette verdien ved å sende den siste kommandoen til Remove-Item (jeg inkluderte whatif-parameteren fordi jeg IKKE vil slette denne nøkkelen)

|_+_|

Og her er resultatet...

Slik bruker du PowerShell til å slette registernøkkelmappe

Slik bruker du PowerShell for å slette mappenavn som

I løpet av andre eksempler i denne veiledningen har jeg vist hvordan du bruker PowerShell til å slette et mappenavn ved å bruke Like-filteret. Også, som allerede vist i tidligere eksempler, kan dette filteret brukes i Get-ChildItem-kommandoen eller i Where-Object-kommandoen.

For eksempel, for å slette alle filer og mapper med navn som fil i banen F:ITGFiles, kan jeg bruke kommandoen nedenfor:

|_+_| For at filteret skal fungere, må du kanskje bruke et jokertegn. I dette eksemplet bruker jeg jokertegnet for stjerne.

Jeg kan oppnå det samme resultatet ved å overføre Get-ChildItem til Where-Object. Utfør deretter filtreringen i Where-Object.

|_+_|

Kommandoen returnerer samme resultat som den siste kommandoen!

Slik bruker du PowerShell for å slette mappenavn som

Som med andre eksempler i denne veiledningen, for å slette mappen, kan du sende utdataene fra en av de to kommandoene til Remove-Item.

Slik bruker du PowerShell til å slette mapper som er større enn en spesifisert størrelse

Hvis du vil slette mapper som er større enn en spesifisert størrelse med PowerShell, må du først beregne mappestørrelser i den angitte banen.

Du må imidlertid liste opp hele banen til undermappene i den angitte mappebanen. For å vise den fullstendige banen til alle undermapper i en mappebane, kjør en kommando som ligner på den nedenfor:

|_+_|

Kommandoen viser de fullstendige banene til alle undermappene i mappebanen, F:ITGFiles

Bruker Dybde parameter med en 0-verdi, i stedet for Gjentakelse sikrer at bare undermappene på første nivå returneres. Slik bruker du PowerShell til å slette nettverksdelt mappe

Nå som jeg har hele banen til undermappen, vil jeg bruke denne informasjonen til å beregne størrelsen på hver undermappe. For å ha den fullstendige banen til undermappene (nødvendig for å slette den senere) og størrelsen, må jeg lage et tilpasset skript.

Her er hele manuset:

|_+_|

Og her er resultatet av kommandoen i PowerShell ISE.

Som du kan se fra skjermbildet, returnerer skriptet bare én fil som oppfyller størrelseskriteriene (10 MB).

Selvfølgelig har vi en siste bit for å fullføre oppgaven - slett filen. For å slette filen som oppfyller størrelseskravet, endret jeg IF-setningen som vist i dette skriptet ...

|_+_|

Så her er det endelige skriptet som sletter mapper som er større enn en spesifisert verdi

|_+_| For å bruke skriptet, endre banen F:ITGFiles i Get-ChildItem – linje 1. Endre også størrelsen på mappen du vil slette – fra 10 (i MB) til ønsket størrelse.

Slik bruker du PowerShell til å slette nettverksdelt mappe

Prosessen med å bruke PowerShell til å slette nettverksmapper er ikke forskjellig fra å slette lokale mapper. Den eneste forskjellen er hvordan du angir en nettverksmappe.

I tillegg til måten du angir en nettverksmappe på, må du også ha de riktige tillatelsene. Spesifikt må du ha tillatelse til å endre del.

Dessuten må du også ha Modify NTFS-sikkerhetstillatelse.

Når disse tillatelseskravene er oppfylt, kan du få tilgang til nettverksmappen med kommandoen Get-ChildItem. Deretter, for å slette mappen, overfører du utdataene fra Get-ChildItem til Remove-Item.

For å demonstrere hvordan du bruker PowerShell til å slette en nettverksmappe, vil jeg bruke en delt mappe kalt TestShare. Mappen ligger på min Windows 11 test-PC kalt ITGWIN11BETA.

For å liste innholdet i den delte nettverksmappen, vil jeg bruke kommandoen Get-ChildItem som vist nedenfor...

|_+_|

Akkurat som en lokal mappe, viser kommandoen alle mappene og undermappene i den delte nettverksmappen.

Slik bruker du PowerShell til å slette en mappe eller fil som starter med

Fra dette punktet kan du sende den siste kommandoen direkte til Remove-Item. Alternativt kan du bruke et filter før du overfører det til Remove-Item.

For eksempel, hvis du ønsker å slette en bestemt mappe, kan du bruke Filter parameter i Get-ChildItem. Alternativt kan du overføre Get-ChildItem til Where-Object og bruke Filter parameter i Where-Object.

Til slutt, for å slette elementet i den delte nettverksmappen, sender du resultatet til Remove-Item.

Slik bruker du PowerShell til å slette en mappe eller fil som starter med

Hvis du ønsker å slette mapper eller filer som starter med et bestemt navn, kan du bruke Filter parameter i Get-ChildItem Cmdlet for å vise filene. Ipe deretter resultatet til Remove-Item.

Alternativt kan du bruke Slett() Metode i Get-ChildItem.

For å illustrere dette eksemplet, vil jeg slette alle filer og mapper som starter med f i skjermbildet nedenfor.

Som jeg nevnte tidligere, er det første trinnet å bruke Get-ChildItem Cmdlet med Filter-parameteren. Her er en eksempelkommando:

|_+_| Et annet alternativ kan være å overføre Get-ChildItem til Where-Object og utføre filtreringen i Where-Object .

Kommandoen viser alle filer som begynner med f. Se skjermbildet nedenfor:

Hvordan bruke PowerShell til å slette en fil eller fil, og deretter skrive rapport til en loggfil

Det siste trinnet for å slette alle mapper og filer som starter med f er å pipe utdataene fra

|_+_|

Slik bruker du PowerShell til å slette programvaredistribusjonsmappen

Som du kanskje allerede vet, lagrer Windows nedlastede oppdateringer i SoftwareDistribution-mappen. Ideelt sett trenger du ikke å slette denne mappen.

Men hvis Windows Update-databasen er korrupt, er en måte å fikse det på å slette Programvaredistribusjon mappe. Før du gjør det, må du først stoppe Windows Update.

For å stoppe Windows Update-tjenesten, kjør PowerShell som administrator. Kjør deretter kommandoen nedenfor:

|_+_| Hvis du ikke stopper Windows Update-tjenesten, vil du IKKE kunne slette Programvaredistribusjon mappe

Deretter, for å bruke PowerShell til å slette SoftwareDistribution-mappen, kjør kommandoene nedenfor:

|_+_|

Til slutt, for å gjenskape SoftwareDistribution-mappen, start Windows Update-tjenesten på nytt

|_+_|

Slik bruker du PowerShell til å slette en fil eller mappe etter å ha zippet den

For å zippe en fil eller mappe, bruk Compress-Archive-kommandoen som vist i eksemplet nedenfor:

|_+_| Endre LiteralPath til kildebanen til filen eller mappen du vil zippe. Endre også DestinationPath til banen du vil lagre den zippede filen.

Når du har zippet filen, bruk kommandoen nedenfor for å slette den...

|_+_|

Hvordan bruke PowerShell til å slette en fil eller fil, og deretter skrive rapport til en loggfil

Hvis du ønsker å bruke PowerShell til å slette en fil eller mappe, og deretter rapportere handlingene til en loggfil, må du først definere loggfilnavnene.

I dette eksemplet vil jeg ha to loggfiler, 1 for å logge suksess og den andre for å logge feil.

Jeg liker vanligvis å lage loggfilene mine basert på dato. For dette eksemplet vil jeg først lage et datostempel og lagre det i en variabel:

|_+_|

Deretter vil jeg opprette to loggfiler basert på datostempelet ...

|_+_|

Det mangler én del – katalogbanen for å lagre loggfilene. For å legge til denne biten vil jeg lagre banen i en variabel...

|_+_|

Deretter legger du til banen til loggfilene ovenfor...

|_+_|

De to siste kommandoene oppretter to loggfiler. For detaljer se skjermbildet nedenfor...

Nå som jeg har opprettet loggfilene våre, vil jeg nå lage et PowerShell-skript som vil slette filer og mapper i en spesifisert bane. Skriv deretter rapporter til loggfilene.

I dette eksemplet ønsker jeg å slette filer i mappen WindowsTemp. Det første trinnet er å lagre banen til denne mappen i en variabel ...

gapps for marshmallow 6.0.1
|_+_|

Deretter vil jeg bruke Get-ChildItem til å liste innholdet i mappen og sende utdataene til Remove-Item.

For å kunne fange opp feilene må jeg imidlertid legge inn hele kommandoen i en Try, Catch.

Her er hele manuset...

|_+_| For å bruke skriptet, kopier det til PowerShell ISE. Deretter endrer du $Path-variabelen til banen til mappen du vil slette. Endre også $LogPath til mappebanen du vil lagre loggfilene dine.

Det er det – vår omfattende guide for å bruke PowerShell til å slette filer eller mapper! Jeg håper du fant veiledningen nyttig.

Hvis du synes det var nyttig, vennligst stem Ja til Var dette innlegget nyttig? under. Alternativt kan du dele detaljerte tilbakemeldinger med LEAVE A REPLY-skjemaet på slutten av denne siden.

Til slutt, for flere PowerShell-veiledninger med eksempler, besøk vår Windows PowerShell How-To-side. Du kan også finne våre GRATIS PowerShell-treningsguider nyttige.