Sådan sletter du mapper eller filer med PowerShell

18. august 2021 10262 Visninger Sådan sletter du mapper eller filer med PowerShell

Vil du slette filer og mapper med PowerShell, men ved ikke hvordan? Denne artikel vil give dig en trin-for-trin guide til, hvordan du bruger PowerShell til at slette en mappe, fil eller alle mapper og filer i en specificeret sti.





Dette blogindlæg lærer dig forskellige måder at slette mapper og filer ved hjælp af PowerShell. Hvis det lyder interessant, så fortsæt med at læse!



Guiden starter med at forklare 2 måder at bruge PowerShell til at slette mapper og filer. Derefter lærer du i det andet afsnit, hvordan du løser almindelige fejl forbundet med sletning af filer og mapper med PowerShell.

Endelig indeholder guiden mere end 20 eksempler.



Gennemse indlægsemner



2 måder at slette mappe eller fil med PowerShell

PowerShell tilbyder to måder at slette elementer på. Du kan slette en mappe eller fil med PowerShell Delete Method.

For det andet kan du bruge Remove-Item til at slette elementer i PowerShell. I de næste 2 underafsnit af dette afsnit lærer du, hvordan du bruger disse metoder.



Metode 1: Brug Powershell Slet() Metode til at slette en mappe eller fil

For at PowerShell kan slette en mappe, skal du bruge Get-ChidItem Cmdlet. Get-ChildItem Cmdlet returnerer elementerne og underordnede elementer på en specificeret placering.



For at vise alle filer og mapper i stien E: beretter , kør kommandoen nedenfor:

|_+_|

Her er resultatet i PowerShell...

Sådan bruger du Powershell Delete()

Denne kommando har en metode kaldet Slet . Du kan bruge Slet Metode til at slette mapper og filer.

For at se tilgængelige metoder i kommandoen ovenfor skal du overføre kommandoen til Get-Member Cmdlet.

|_+_|

Kommandoen returnerede to typer egenskaber. en , System.IO.DirectoryInfo (se det første billede nedenfor). to , System.IO.FileInfo . Den første vedrører mapper i stien, mens den anden vedrører filer.

Se nøje på de to billeder. Bemærk, at hver af dem har en metode kaldet Slet . Du kan bruge Slet Metode i PowerShell for at slette en mappe eller fil.

I næste underafsnit vil jeg vise, hvordan du bruger Slet Metode.

Sådan bruges Slet () Metode i Powershell til at slette en mappe eller fil

Syntaksen for Slet Metoden er:

|_+_|

Objekt er mappen med fildetaljer, der returneres af Get-ChidItem Cmdlet. Desuden, Slet er metoden, der normalt følges af () operatoren.

For at gøre det nemt at forstå ovenstående syntakskommando er her den originale Get-ChildItem kommando:

|_+_|

og resultatet...

Sådan bruger du Powershell Delete()

Baseret på det, jeg har forklaret indtil videre, kan du i teorien bruge PowerShell Delete Method til at slette mappen kaldet rapporter ved at køre kommandoen nedenfor:

|_+_|

Den sidste kommando returnerer dog fejlmeddelelsen Mappen er ikke tom.

For at løse dette problem har jeg brug for en kommando, der returnerer alle filer og mapper og undermapper i stien. Så skal jeg overføre resultatet til aForEach-løkke.

Her er den ændrede kommando:

|_+_|

Her er kommandoen i PowerShell. Alle filer er blevet slettet fra den angivne sti.

Den sidste kommando sletter filerne i den angivne mappe og dens undermapper. Det sletter dog ikke mapperne.

For at slette mapperne skal du køre kommandoen nedenfor:

|_+_|

For at bekræfte det E: beretter er nu tom, vil jeg køre kommandoen Get-ChildItem igen.

|_+_|

Det giver ikke noget tilbage!

Før jeg går videre til næste afsnit, lad mig forklare, hvordan denne kommando slettede alle filer og undermapper.

|_+_|

Get-ChildItem har to parametre kaldet Omfatte og Genfald . I kommandoen brugte jeg - Inkluder *.* at fortælle PowerShell at inkludere hver fil i resultatet.

Genfald , på den anden side, fortæller Get-ChildItem at returnere alle mapper og undermapper.

I den anden del af kommandoen overførte jeg Get-ChildItem til ForEach-erklæringen. ForEach går gennem alle objekter, der returneres af Get-ChildItem og bruger Slet Metode til at slette dem.

onenote 2016 desktop download

Som jeg allerede nævnte, da jeg introducerede dette afsnit, har PowerShell en cmdlet kaldet Fjern-vare specifikt. Du kan også bruge denne PowerShell Cmdlet til at slette en mappe eller en fil.

Det næste afsnit dækker, hvordan du bruger Fjern-vare . Efter min erfaring, ved hjælp af Fjern-vare er bedre end at bruge Slet() Metode.

Metode 2: Brug Powershell Fjern-vare Cmdlet for at slette en mappe eller fil

Til at slette en fil eller mappe med Fjern-vare du skal stadig bruge PowerShell Cmdlet, Get-ChildItem. Pibe derefter resultatet til Fjern-vare .

Du kan løbe Fjern-vare uden Get-ChildItem . Men ud fra min erfaring fungerer det i de fleste tilfælde bedst at liste varen med Get-ChildItem . Derefter rør outputtet til Fjern-vare .

I mit første eksempel i dette afsnit vil jeg bruge PowerShell til at slette mappen kaldet ITGServer2. Se skærmbilledet nedenfor.

Metode 2: Brug Powershell Remove-Item Cmdlet til at slette en mappe eller fil

Her er PowerShell-kommandoen, der sletter mappen...

|_+_|

Efter at have kørt ovenstående kommando, er mappen væk!

Metode 2: Brug Powershell Remove-Item Cmdlet til at slette en mappe eller fil

I mit andet eksempel vil jeg slette mapperne og undermapperne i E: apporter. Kommandoen nedenfor vil gøre jobbet...

|_+_|

Efter at have kørt den sidste kommando, er alle mapper i den angivne mappe væk!

Metode 2: Brug Powershell Remove-Item Cmdlet til at slette en mappe eller fil

Sådan rettes almindelige fejl med Powershell Slet mappe eller fil

Sådan rettes almindelige fejl med Powershell Slet mappe eller fil

Når du kører kommandoen Remove-Item PowerShell for at slette en mappe eller fil, kan den returnere nogle fejl. Dette afsnit dækker nogle af disse fejl, og hvordan de rettes.

Jeg føler, at det er bedre at diskutere løsninger på disse almindelige fejl, før vi dykker ned i nogle virkelige sysadmin-eksempler på, hvordan man bruger PowerShell til at slette mapper eller filer.

Sådan rettes Powershell-fejlen til sletning af mappe eller filadgang nægtet

Hvis du kører Remove-Item for at slette en fil eller mappe og modtager en Adgang nægtet fejlmeddelelse, kan du prøve følgende:

  1. Skift ejer af filen eller mappen – brug koderne nedenfor til at ændre ejeren af ​​en fil eller mappe til den lokale administrator

For at køre denne kommando skal du åbne PowerShell som administrator, ellers vil den sidste kommando mislykkes.

|_+_| Skift mappestien, F:ITGFilesTextfiles til den fulde sti til din fil eller mappe

Når du har ændret ejeren til den lokale administrator, kan du prøve at køre at slette filen eller mappen igen med PowerShell. Hvis det ikke virker, så prøv disse rettelser.

  1. Tilføj Kraft parameter til Remove-Item
  2. Prøv i stedet Delete()-metoden. Hvis du ikke ved, hvordan du bruger PowerShell Delete()-metoden, se Sådan bruges Delete()-metoden i Powershell til at slette en mappe eller fil (linket åbner i en anden browserfane) i denne vejledning.

Sådan rettes Powershell Delete-mappe kan ikke fjernes, fordi den ikke er tom fejl

Hvis du modtager kan ikke fjernes, fordi den ikke er tom fejl, når du kører kommandoen:

|_+_|

Prøv at bruge Get-ChildItem med parameteren Recurse. Rør det derefter til Remove-Item med Kraft og Genfald parametre.

Her er et eksempel på en kommando:

|_+_|

Alternativt kan du køre Get-ChildItem og angive stjerner bag den sidste skråstreg i stien. Dette sletter alt indholdet i mappen.

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

|_+_|

...og modtage Kan ikke fjernes, fordi den ikke er tom, for at løse problemet, vil jeg først køre kommandoen nedenfor:

|_+_|

Den sidste kommando sletter kun elementerne i E: apporter. Til sidst, for at slette mappen (som nu er tom), vil jeg køre kommandoen nedenfor...

|_+_|

Sådan rettes Powershell Slet mappe brugt af en anden procesfejl

Sådan rettes Powershell Delete Folder

Hvis du modtager Remove-Item, returnerer fejlmeddelelsen, fordi den bruges af en anden proces, skal du inkludere Force-parameteren.

Her er originalen, der returnerede fejlmeddelelsen...

|_+_|

For at løse dette problem skal du køre kommandoen nedenfor for en fil:

|_+_|

Den sidste kommando slettede filen med succes...

Sådan rettes Powershell Slet mappe eller filmappe eller filnavn for lang fejl

Dette ser ud til at være en kendt begrænsning med PowerShell.

For at løse dette problem kan du dog bruge til dig cmd kommando. Overfør derefter resultatet til kommandoen Remove-Item.

Her er et eksempel...

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

Sådan rettes Powershell Slet mappe Adgang til stien er nægtet fejl

PowerShell Remove-Item-kommandoen sender fejlmeddelelsen Adgang til stien nægtet, hvis du forsøger at slette en mappe, du ikke har tilladelse til at slette.

Grunden til at du får denne fejlmeddelelse er, at du ikke har adgang til mappen. Før du kører kommandoen Remove-Item, skal du køre følgende kommandoer for at give lokale administratorer adgang til mappen.

Denne rettelse forudsætter, at den konto, du brugte til at logge på, er medlem af den lokale administratorgruppe. Før du kører kommandoen nedenfor i PowerShell ISE, skal du ændre stien F:ITGFilesTextfiles til den mappesti, du forsøger at slette. |_+_|

Når du er færdig med at køre scriptet ovenfor, skal du køre kommandoen Remove-Item igen.

Flere Powershell Slet mappe eller fil eksempler

Flere Powershell Slet mappe eller fil eksempler

Dette sidste afsnit af vejledningen dækker flere eksempler på, hvordan du bruger PowerShell til at slette filer eller mapper.

Sådan sletter du en mappe eller fil med PowerShell, hvis den findes

Da dette eksempel har en betingelse – hvis mappen eller filen eksisterer – kontrollerer den første sti til kommandoen, om elementet eksisterer.

Du kan bruge Test-sti kommando for at kontrollere, om der findes en mappe eller fil. Derefter bruger du den betingede IF-sætning til at fjerne mappen eller filen, hvis den findes.

Vi kan kombinere begge kommandoer i IF-sætningsblokken...

I dette eksempel vil jeg slette en mappe kaldet ITGServer i stien F:ITGFilesTextfiles – hvis mappen findes.

Her er kommandoen...

|_+_|

I dette eksempel eksisterer denne mappe, så den blev slettet. Men hvis vi prøver kommandoen med en fil, der ikke eksisterer, vil vi modtage beskeden i Andet blok af IF-erklæringen.

Sådan sletter du en mappe og dens undermapper med PowerShell

For at slette en mappe og alle undermapper skal du køre Fjern-vare kommando med Genfald og Kraft parametre.

Her er et eksempel...

|_+_|

Sådan sletter du en mappe eller fil ældre end x dage (eller baseret på dato) med PowerShell

I dette eksempel, da vi ønsker at slette filer eller mapper, der er ældre end x dage, er det første skridt at få dages reference. Dette gøres med kommandoen Get-Date.

Men da vi ønsker at slette elementer, der er ældre end x dage, er vi nødt til at angive x dage som en negativ værdi. For eksempel, for at slette alle filer eller mapper, der er ældre end 7 dage, skal du hente dages reference med kommandoen nedenfor:

|_+_|

Brug derefter Get-ChildItem kommando for at få LastWriteTime varens ejendom. Det LastWriteTime egenskab registrerer den sidste dato, hvor en mappe eller fil blev ændret.

Ud over LastWriteTime egenskab, returnerer kommandoen Get-ChildItem en anden egenskab kaldet PSIsContainer . PSIsContainer-egenskaben adskiller en fil fra en mappe.

Hvis PSIsContainer er sandt, betyder det, at elementet er en mappe. På den anden side, hvis PSIsContainer er falsk, betyder det, at elementet er en fil.

Før jeg introducerer LastWriteTime-egenskaben, lad mig først køre en Get-ChildItem-kommando og filtrere efter PSIsContainer-egenskaben:

|_+_|

Denne kommando returnerede et enkelt objekt kaldet ITG fordi dette er den eneste mappe i stien F:ITGFilesTextfiles.

Alternativt, for kun at vise filer i stien, skal du køre kommandoen nedenfor:

|_+_|

Denne gang, fordi jeg specificerede af $ _. PSIsConta ned -eq $FALSK , PowerShell returnerer alle ikke-mapper.

Nu hvor du forstår, hvordan du viser mapper eller filer i en mappe, lad os introducere LastWriteTime-egenskaben. Som jeg nævnte tidligere, er den sidste dato og det tidspunkt, hvor elementet blev ændret, registreret i LastWriteTime-egenskaben.

Disse kommandoer inkluderer egenskaben LastWriteTime:

|_+_|

Den første kommando returnerer alle mapper, der sidst blev ændret før dagreferencen gemt i $DaysRef-variablen. I dette eksempel er dagsreferencen 7 dage.

Tværtimod returnerer den anden kommando alle filer, der er ændret sidste x dage - hvor x dage er lig med 7 i dette eksempel.

Den anden og sidste fase af dette eksempel, der bruger PowerShell til at slette mapper med filer, der er ældre end x dage, er at overføre Where-Object-kommandoen til Remove-Item.

Scriptet nedenfor fuldender opgaven med at slette filerne og mappen...

|_+_| Hvis ingen fil eller mappe opfylder LastWriteTime-kriterierne, vil ingen blive slettet.

Sådan bruges PowerShell til kun at slette mappeindhold

I dette eksempel vil jeg slette indholdet af F:ITGFilesfolder, men ikke selve mappen.

Hvis du kun vil slette indholdet af en mappe, men beholde mappen, skal du køre kommandoen Remove-Item som vist i eksemplet nedenfor:

|_+_|

Tricket er at tilføje en stjerne efter den sidste skråstreg i slutningen af ​​mappestien.

Det Genfald parameter sletter alle mapper og undermapper i den angivne sti. I dette eksempel, F:ITGFilesfolder*

Sådan bruges PowerShell til at slette mappe og indhold uden bekræftelse eller prompt

Tricket til at slette en mappe og indhold uden at bede dig om bekræftelse er at tilføje Kraft og Bekræft:$false parametre til Fjern-vare kommando.

Hvis jeg kører kommandoen nedenfor uden at tilføje Bekræft:$false parameter, vil jeg kunne bekræfte, at jeg vil slette mappen og alt dens indhold.

hvordan man sletter meddelelser med mee6
|_+_|

Men hvis jeg ikke ønsker at modtage denne bekræftelsesprompt, vil jeg inkludere parameteren Confirm:$false.

|_+_|

Kommandoen skal køre uden at bede om at bekræfte handlingen. Bemærk også, at den parameter, der stopper bekræftelsesprompten, er Bekræft:$false .

Hvis den sidste kommando stadig beder om bekræftelse, skal du først køre Get-ChildItem kommando. Overfør derefter output til kommandoen Remove-Item som vist nedenfor:

|_+_|

Desværre sletter den sidste kommando ikke den overordnede mappe. For at slette den overordnede mappe og alt dens indhold skal du tilføje parameteren -filter til kommandoen Get-ChildItem som vist i denne kommando:

|_+_|

Sådan bruges PowerShell til at slette en mappe eller fil til papirkurven

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

Desværre er der ingen PowerShell Cmdlet til at slette en mappe eller fil til papirkurven. Jeg forsøgte at oprette en brugerdefineret funktion til denne opgave. Jeg fandt dog en eksisterende funktion oprettet af en stackoverflow.com bidragyder.

For at gøre den tilgængelig for vores læsere uploadede jeg en kopi af funktionen til S Zone. Følg nedenstående trin for at downloade og bruge funktionen:

  1. Klik på download Remove-ItemToRecycleBin.zip for at downloade funktionen
  2. Udpak derefter den downloadede zip-fil. Når du udpakker filen, vil den oprette en mappe kaldet Remove-ItemToRecycleBin.
  3. Til sidst kopierer du mappen til din Windows 10 PowerShell-profilmapp. Mappen er placeret i stien nedenfor
|_+_| er dit Windows 10-profilnavn. Dette er normalt placeret i C:Users. Men hvis det ikke er i drev C, skal du se på drev D eller E.

Når du har kopieret modulmappen til din modulmappe, kan du bruge den som enhver anden PowerShell-kommando. For at illustrere, hvordan det virker, vil jeg slette E: apporter til papirkurven.

Før jeg kører kommandoen, er her et skærmbillede af min tomme papirkurv.

Sådan bruges PowerShell til at slette en mappe eller fil til papirkurven

Nu, for at bruge PowerShell til at slette mappen, E: apporterer til papirkurven, kører jeg kommandoen nedenfor:

|_+_|

Efter at have kørt ovenstående kommando, flyttes rapportmappen til papirkurven. Se skærmbilledet nedenfor...

Sådan bruges PowerShell til at slette en mappe eller fil og udelukke andre mapper eller filer

Kommandoen Remove-Item har en Udelukke parameter. Denne parameter bruges til at udelukke en mappe eller fil, som du ikke ønsker at slette.

Her er et eksempel. Jeg vil slette alle mapper i stien, F:ITGFilesTextfiles5. Jeg ønsker dog ikke at slette mappe3.

Sådan bruges PowerShell til at slette en mappe eller fil og udelukke andre mapper eller filer

Som du kan se på skærmbilledet ovenfor, har mappen både mapper og filer.

For kun at slette mapper, skal jeg først bruge kommandoen Get-ChildItem til at liste alle elementer i stien. Rør derefter outputtet til Where-Object og filtrer efter PSIsContainer-egenskaben.

|_+_|

Efter at have kørt den sidste kommando, slettes alle mapper, men ikke mappe3. Du bemærker også, at filer i F:ITGFilesTextfiles5 ikke blev slettet.

Grunden til, at kun mapper blev slettet, er, at inden for Hvor-objekt blok, filtrerede jeg efter {$_.PSIsContainer -eq $TRUE}. PSIsContainer-egenskaben angiver, at et objekt er en mappe.

Hvis du går videre, har Remove-Item også en parameter kaldet Inkluder. Denne parameter udfører den modsatte handling af Exclude-parameteren.

Jeg kan opnå det samme resultat som den sidste kommando ved at erstatte Exclude med Include. Men i modsætning til den forrige kommando vil jeg nu liste de mapper, jeg vil slette.

Her er en eksempelkommando, der blot sletter mappe1 fra F:ITGFilesTextfiles5.

|_+_|

Efter at have kørt den forrige kommando, vil du bemærke, at kun mappe1 blev slettet.

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

Sådan bruges PowerShell til at slette en mappe, selvom den ikke er tom

Hvis du vil slette en mappe med PowerShell – selvom mappen ikke er tom – skal du inkludere Kraft og Genfald parametre. Her er et eksempel.

|_+_|

Sådan bruges PowerShell til at slette tomme mapper ældre end X dage

Følg nedenstående trin for at bruge PowerShell til at slette tomme mapper, der er ældre end x dage...

I dette eksempel vil jeg slette mapper, der er ældre end 90 dage, fra min Windows 10-profil, C:UsersVictorA.

  1. Brug Get-ChildItems til kun at vise mapper i den angivne sti:
|_+_|

Kommandoen viser alle mapper i den angivne sti. Hvis du husker, i tidligere kommandoer i denne guide, at returnere mapper, brugte vi Hvor-objekt at filtrere efter PSIsContainer ejendom. Jeg beslutter mig dog for at opnå det samme resultat ved hjælp af Vejviser parameter af Get-ChildItem .

  1. Overfør derefter resultatet af kommandoen Get-ChildItem til Where-Object. Indenfor kommandoen Where-Object skal du tilføje et filter, der kun returnerer tomme mapper. Her er kommandoen...
|_+_|
  1. Nu skal vi tilføje stien, der returnerer mapper på den tidligere liste, der er ældre end 90 dage. Dette involverer to kommandoer.

I den første kommando vil jeg bruge Get-Date til at bestemme datoen for tidsperioden. I eksemplet for 90 dage siden. For at gøre det nemmere vil jeg gemme resultatet i en variabel kaldet $DaysRef.

|_+_|

Så, i den anden kommando, vil jeg inkludere et andet filter i Where-Object-delen af ​​den sidste kommando.

|_+_|

Her er resultatet af den sidste kommando...

Sådan bruges PowerShell til at slette tomme mapper ældre end X dage

Som du kan se, returneres kun to tomme mapper nu af den sidste kommando. Jeg kørte denne kommando den 4. august 2021. Som du kan se, er LastWriteTime af de to mapper er 16/06/2021 16:29.

For amerikanske læsere er denne dato den 16. august 2021 (16/06/2021)

Det betyder, at sidste gang, de to mapper sidst blev ændret, er mere end 90 dage fra jeg kørte kommandoen.

  1. Til sidst, for at slette disse tomme mapper, der er ældre end 90 dage, skal du overføre den sidste kommando til kommandoen Remove-Item PowerShell.
|_+_|

Sådan bruges PowerShell til at slette brugerprofilmappe

For at slette brugerprofilmappen med kommandoerne i dette afsnit SKAL du åbne PowerShell som administrator . Ellers kan du modtage en fejlmeddelelse om adgang nægtet

Det første trin til at bruge PowerShell til at slette en brugers profilmappe er at bestemme stien til brugerens mappe. PowerShell har en miljøvariabel, der returnerer stien til Windows installationsmappen.

Variablen er…

|_+_|

Denne kommando returnerer en sti som C:WINDOWS. I mellemtiden er mappen Brugere (der indeholder alle brugerprofilmapper) placeret i roden af ​​det drev, hvor Windows er installeret.

Star Wars Battlefront Double XP weekend

I mit eksempel er mappen Brugere placeret i drev C:WINDOWS.

Men for at returnere C: fra C:WINDOWS skal du bruge splitmetoden som vist i kommandoen nedenfor.

|_+_|

Kommandoen returnerer C: og WINDOWS. Det næste trin er at returnere C: – dette er det første element i arrayet.

Sådan bruges PowerShell til at slette brugerprofilmappe

For at få adgang til dette element skal du inkludere denne [0] til den sidste kommando som vist nedenfor.

|_+_|

Nu har vi C:

Sådan bruges PowerShell til at slette brugerprofilmappe

Jeg nævnte tidligere, at alle brugerprofiler er placeret i mappen Brugere. Fra den sidste kommando vil jeg tilføje Users til returneringen C:Users

|_+_|

Nu har vi den fulde sti til mappen Brugere.

I den næste kommando vil jeg bruge Get-ChildItem til at liste alle brugerprofilmapper i mappen Brugere. Men for at undgå fejl gemmer jeg først den sidste kommando i en variabel.

|_+_|

Nu kan jeg bruge Get-ChildItem til at returnere alle brugerprofilmapper i mappen Brugere. Her er kommandoen:

|_+_|

Og resultatet i PowerShell...

Sådan bruges PowerShell til at slette brugerprofilmappe

Den sidste bit vil være at sende den sidste kommando til Remove-Item. Du skal dog bruge parameteren Filter for kun at slette den brugerprofilmappe, du vil slippe af med.

I dette eksempel vil jeg slette brugerprofilmappen kaldet victo og alle dens undermapper

Her er den sidste kommando, der bruger PowerShell til at slette brugerprofilmappe:

|_+_|

Efter at have kørt denne kommando, nu hvis du kører kommandoen nedenfor, vil den slettede profil ikke længere blive vist.

|_+_|

Sådan bruger du PowerShell til at slette mappe fra appdata

PowerShell har to miljøvariabler til en logget brugers AppData-mappe.

|_+_|

Den miljøvariabel, du beslutter dig for at bruge, afhænger af placeringen af ​​den mappe, du vil slette. Men hvis du ikke er sikker på placeringen af ​​den mappe, du vil slette, kan du søge begge steder.

For at opnå dette vil jeg gemme begge miljøvariabler i en variabel kaldet $appdatafolders...

|_+_|

Derefter vil jeg bruge ForEach-løkken til at kontrollere begge placeringer. Her er koden, der gør dette job...

|_+_| Jeg inkluderede WhatIf-parameteren, så PowerShell ikke sletter mappen. I stedet vil PowerShell vise den handling, den skulle udføre, hvis WhatIf-parameteren ikke var inkluderet.

Her er resultatet af kommandoen i PowerShell. Billedet til højre på skærmbilledet er mappen i min AppData-mappe.

Sådan bruger du PowerShell til at slette mappe fra appdata

Sådan bruger du PowerShell til at slette skjult mappe

Kommandoen Get-ChildItem har en parameter kaldet Hidden. Hvis du vil have en liste over skjulte mapper i en bestemt mappe, skal du inkludere parameteren Skjult.

I mit skærmbillede nedenfor har jeg 3 mapper (ikke eller dem skjult).

For at demonstrere, hvordan man bruger PowerShell til at slette skjulte mapper, vil jeg skjule Textfiles3. Nu er mappen skjult.

Sådan bruger du PowerShell til at slette skjult mappe

For at vise den skjulte mappe, vil jeg køre kommandoen nedenfor...

|_+_|

Som forventet viser kommandoen kun den skjulte mappe.

For at slette den skjulte mappe med PowerShell vil jeg nu overføre den sidste kommando til kommandoen Remove-Item.

|_+_|

For at bekræfte, at mappen blev slettet, aktiverede jeg attributten Vis skjulte elementer i File Explorer.

Sådan bruger du PowerShell til at slette skjult mappe

Sådan bruger du PowerShell til at slette filer, men beholde mappestrukturen

Der kan være tilfælde, hvor du måske ønsker at slette alle filer i en mappe, inklusive dens undermapper, men bevare mappestrukturen.

For at opnå dette skal du køre kommandoen Get-ChildItem og angive parameteren File. Når du bruger parameteren Fil, viser Get-ChildItem kun filer i den angivne mappe.

For at demonstrere, hvordan dette virker, har jeg oprettet en mappestruktur vist på skærmbilledet nedenfor:

Sådan bruger du PowerShell til at slette filer, men beholde mappestrukturen

Som det ses på skærmbilledet, har mappe1 to undermapper, mappe2 og mappe3. Desuden har mappe2 og mappe3 nogle filer.

For at bruge Get-ChildItem til kun at vise filer i stien, F:ITGFilesfolder1, vil jeg køre kommandoen nedenfor:

|_+_|

Kommandoen viser kun filer i de to stier, F:ITGFilesfolder1folder2 og Directory: F:ITGFilesfolder1folder3

Til sidst, for at slette filerne, men beholde mappestrukturen, skal du sende den sidste kommando til Remove-Item...

|_+_|

Kommandoen sletter alle filerne, men efterlader mappestrukturen intakt!

Sådan bruges PowerShell til at slette registreringsdatabasenøglemappen

Kommandoen til at liste og slette en registreringsnøglemappe er den samme kommando, der bruges til at slette normale mapper.

Hvis du har læst denne guide fra begyndelsen, har vi indtil videre brugt to kommandoer:

Get-ChildItem : bruges til at liste elementer i en specificeret sti
Fjern-vare : bruges til at slette de filer/mapper, der er angivet af Get-ChildItem

Den eneste forskel er imidlertid, hvordan du får adgang til registreringsdatabasenøglemapper.

Der er flere måder at formatere en registreringsnøgle på til brug i kommandoerne Get-ChildItem og Remove-Item. Til dette eksempel vil jeg dog bruge nedenstående metode:

|_+_|

I dette eksempel vil jeg have adgang til registreringsdatabasenøglemappen, HKEY_CURRENT_USERControl PanelDesktop. Som du kan se i kommandoformatet ovenfor, tilføjede jeg ordregistret for at gøre dette, efterfulgt af to koloner, ::

For at lære mere om, hvordan PowerShell fungerer med Windows-registreringsdatabasen, læs vores guide – Sådan bruger du PowerShell til at læse registreringsværdi .

Flyt eksemplet til næste trin, for at liste elementerne i ovenstående registreringsnøglemappe, kør kommandoen nedenfor:

onedrive starter ikke windows 10
|_+_|

Kommandoen viser alle undernøglemapper i den angivne registreringsnøglemappe.

Hvis jeg vil slette en bestemt mappe, kører jeg først Get-ChildItem. Derefter sender jeg outputtet til Select-Object

|_+_|

Ovenstående kommando viser den fulde sti til alle undernøglerne i min originale registreringsnøglemappe:

Sådan bruges PowerShell til at slette registreringsdatabasenøglemappen

Derefter, for at slette undernøglerne, sender jeg den sidste kommando til Remove-Item. Men for at slette en specifik undernøglemappe vil jeg først sende den sidste kommando til Where-Object og filtrere efter navnet på den undernøgle, jeg vil slette:

|_+_|

Den sidste kommando returnerer nu kun den angivne registreringsundernøglemappesti.

Til sidst, for at slette denne mappeundernøgle med PowerShell, skal du sende den sidste kommando til Remove-Item. Inden da skal du dog ændre registreringsdatabasenøglen og overføre den til Get-Item.

For at gøre det nemt vil jeg gemme den sidste kommando i en variabel

|_+_|

Formater den derefter til kommandoen Get-Item

|_+_|

Send til sidst den formaterede nøglesti til Get-Item...

|_+_|

Nu kan vi slette værdien ved at sende den sidste kommando til Remove-Item (jeg inkluderede whatif-parameteren, fordi jeg IKKE ønsker at slette denne nøgle)

|_+_|

Og her er resultatet...

Sådan bruges PowerShell til at slette registreringsdatabasenøglemappen

Sådan bruges PowerShell til at slette mappenavn som

I løbet af andre eksempler i denne vejledning har jeg vist, hvordan man bruger PowerShell til at slette et mappenavn ved hjælp af Like-filteret. Som allerede vist i tidligere eksempler kan dette filter også anvendes i kommandoen Get-ChildItem eller i Where-Object-kommandoen.

For eksempel, for at slette alle filer og mapper med navne som fil i stien F:ITGFiles, kan jeg bruge kommandoen nedenfor:

|_+_| For at filteret skal virke, skal du muligvis bruge et jokertegn. I dette eksempel bruger jeg jokertegnet for stjerne.

Jeg kan opnå det samme resultat ved at overføre Get-ChildItem til Where-Object. Udfør derefter filtreringen i Where-Object.

|_+_|

Kommandoen returnerer det samme resultat som den sidste kommando!

Sådan bruges PowerShell til at slette mappenavn som

Som med andre eksempler i denne vejledning skal du overføre outputtet fra en af ​​de to kommandoer til Remove-Item for at slette mappen.

Sådan bruges PowerShell til at slette mapper større end en specificeret størrelse

Hvis du vil slette mapper større end en specificeret størrelse med PowerShell, skal du først beregne mappestørrelser i den angivne sti.

Du skal dog angive den fulde sti til undermapperne i den angivne mappesti. For at få vist den fulde sti til alle undermapper i en mappesti skal du køre en kommando, der ligner den nedenfor:

|_+_|

Kommandoen viser de fulde stier til alle undermapperne i mappestien, F:ITGFiles

Bruger Dybde parameter med en 0-værdi i stedet for Genfald sikrer, at kun undermapperne på første niveau returneres. Sådan bruges PowerShell til at slette netværksdelt mappe

Nu hvor jeg har den fulde sti til undermappen, vil jeg bruge disse oplysninger til at beregne størrelsen af ​​hver undermappe. Men for at have den fulde sti til undermapperne (kræves for at slette den senere) og størrelsen, skal jeg oprette et brugerdefineret script.

Her er det fulde manuskript:

|_+_|

Og her er resultatet af kommandoen i PowerShell ISE.

Som du kan se på skærmbilledet, returnerer scriptet kun én fil, der opfylder størrelseskriterierne (10 MB).

Vi har naturligvis en sidste smule til at fuldføre opgaven - slet filen. For at slette filen, der opfylder størrelseskravet, ændrede jeg IF-sætningen som vist i dette script...

|_+_|

Så her er det endelige script, der sletter mapper, der er større end en specificeret værdi

|_+_| For at bruge scriptet skal du ændre stien F:ITGFiles i Get-ChildItem – linje 1. Skift også størrelsen på den mappe, du vil slette – fra 10 (i MB) til den ønskede størrelse.

Sådan bruges PowerShell til at slette netværksdelt mappe

Processen med at bruge PowerShell til at slette netværksmapper er ikke forskellig fra at slette lokale mapper. Den eneste forskel er, hvordan du angiver en netværksmappe.

Ud over den måde, du angiver en netværksmappe på, skal du også have de rigtige tilladelser. Specifikt skal du have Change Share-tilladelse.

Desuden skal du også have Modify NTFS-sikkerhedstilladelse.

Når disse tilladelseskrav er opfyldt, kan du få adgang til netværksmappen med kommandoen Get-ChildItem. Derefter, for at slette mappen, skal du overføre output fra Get-ChildItem til Remove-Item.

For at demonstrere, hvordan man bruger PowerShell til at slette en netværksmappe, vil jeg bruge en delt mappe kaldet TestShare. Mappen er placeret på min Windows 11 test pc kaldet ITGWIN11BETA.

For at liste indholdet af den delte netværksmappe, vil jeg bruge kommandoen Get-ChildItem som vist nedenfor...

|_+_|

Ligesom en lokal mappe viser kommandoen alle mapper og undermapper i den delte netværksmappe.

Sådan bruger du PowerShell til at slette en mappe eller fil, der starter med

Fra dette tidspunkt kan du sende den sidste kommando direkte til Remove-Item. Alternativt anvender du et eller andet filter, før du overfører det til Remove-Item.

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

Til sidst, for at slette elementet i den delte netværksmappe, skal du overføre resultatet til Remove-Item.

Sådan bruger du PowerShell til at slette en mappe eller fil, der starter med

Hvis du ønsker at slette mapper eller filer, der starter med et bestemt navn, kan du bruge Filter parameter i Get-ChildItem Cmdlet for at vise filerne. Ipe derefter resultatet til Remove-Item.

Alternativt kan du bruge Slet() Metode i Get-ChildItem.

For at illustrere dette eksempel vil jeg slette alle filer og mapper, der starter med f i skærmbilledet nedenfor.

Som jeg nævnte tidligere, er det første trin at bruge Get-ChildItem Cmdlet med parameteren Filter. Her er et eksempel på en kommando:

|_+_| En anden mulighed kunne være at overføre Get-ChildItem til Where-Object og udføre filtreringen i Where-Object .

Kommandoen viser alle filer, der starter med f. Se skærmbilledet nedenfor:

Sådan bruger du PowerShell til at slette en fil eller fil, og derefter skrive rapport til en logfil

Det sidste trin til at slette alle mapper og filer, der starter med f, er at pipe outputtet af

|_+_|

Sådan bruges PowerShell til at slette SoftwareDistribution-mappen

Som du måske allerede ved, gemmer Windows downloadede opdateringer i mappen SoftwareDistribution. Ideelt set behøver du ikke at slette denne mappe.

Men hvis Windows Update-databasen er korrupt, er en måde at rette det på ved at slette Softwaredistribution folder. Før du dog gør det, skal du først stoppe Windows Update.

For at stoppe Windows Update-tjenesten skal du køre PowerShell som administrator. Kør derefter kommandoen nedenfor:

|_+_| Hvis du ikke stopper Windows Update-tjenesten, vil du IKKE være i stand til at slette Softwaredistribution folder

For at bruge PowerShell til at slette SoftwareDistribution-mappen skal du derefter køre kommandoerne nedenfor:

udvid skrivebordet til Chromecast
|_+_|

Til sidst, for at genskabe SoftwareDistribution-mappen, skal du genstarte Windows Update-tjenesten

|_+_|

Sådan bruger du PowerShell til at slette en fil eller mappe efter at have zippet den

For at zippe en fil eller mappe skal du bruge kommandoen Komprimer-Arkiv som vist i eksemplet nedenfor:

|_+_| Skift LiteralPath til kildestien til den fil eller mappe, du vil zippe. Skift også DestinationPath til den sti, du vil gemme den zippede fil.

Når du har zippet filen, skal du bruge kommandoen nedenfor til at slette den...

|_+_|

Sådan bruger du PowerShell til at slette en fil eller fil, og derefter skrive rapport til en logfil

Hvis du ønsker at bruge PowerShell til at slette en fil eller mappe, og derefter rapportere handlingerne til en logfil, skal du først definere logfilnavnene.

I dette eksempel vil jeg have to logfiler, 1 til at logge succes og den anden til at logge fejl.

Jeg kan normalt godt lide at oprette mine logfiler baseret på dato. For dette eksempel vil jeg først oprette et datostempel og gemme det i en variabel:

|_+_|

Derefter vil jeg oprette to logfiler baseret på datostemplet...

|_+_|

Der mangler en brik – biblioteksstien til at gemme logfilerne. For at tilføje denne bit vil jeg gemme stien i en variabel...

|_+_|

Tilføj derefter stien til logfilerne ovenfor...

|_+_|

De sidste to kommandoer opretter to logfiler. For detaljer se skærmbilledet nedenfor...

Nu hvor jeg har oprettet vores logfiler, vil jeg nu oprette et PowerShell-script, der sletter filer og mapper i en specificeret sti. Skriv derefter rapporter til logfilerne.

I dette eksempel vil jeg slette filer i mappen WindowsTemp. Det første trin er at gemme stien til denne mappe i en variabel...

|_+_|

Derefter vil jeg bruge Get-ChildItem til at liste indholdet af mappen og sende output til Remove-Item.

Men for at kunne fange fejlene, skal jeg omslutte hele kommandoen i en Try, Catch.

Her er det fulde manuskript...

|_+_| For at bruge scriptet, kopier det til PowerShell ISE. Skift derefter $Path-variablen til stien til den mappe, du vil slette. Skift også $LogPath til den mappesti, du vil gemme dine logfiler.

Det er det – vores omfattende guide til at bruge PowerShell til at slette filer eller mapper! Jeg håber du fandt vejledningen nyttig.

Hvis du fandt det nyttigt, så stem venligst Ja til Var dette indlæg nyttigt? under. Alternativt kan du dele detaljeret feedback med formularen LAD ET SVAR i slutningen af ​​denne side.

Endelig, for flere PowerShell-vejledninger med eksempler, besøg vores Windows PowerShell How-To-side. Du kan også finde vores GRATIS PowerShell træningsvejledninger nyttige.