Hur man tar bort mappar eller filer med PowerShell
Vill du ta bort filer och mappar med PowerShell, men vet inte hur? Den här artikeln ger dig en steg-för-steg-guide om hur du använder PowerShell för att ta bort en mapp, fil eller alla mappar och filer i en angiven sökväg.
Det här blogginlägget lär dig olika sätt att ta bort mappar och filer med PowerShell. Om detta låter intressant, fortsätt läsa!
Guiden börjar med att förklara två sätt att använda PowerShell för att ta bort mappar och filer. Sedan, i det andra avsnittet, kommer du att lära dig hur du åtgärdar vanliga fel associerade med att radera filer och mappar med PowerShell.
Slutligen innehåller guiden mer än 20 exempel.
Bläddra bland inläggsämnen
- 2 sätt att ta bort mapp eller fil med PowerShell
- Hur man åtgärdar vanliga fel med Powershell Ta bort mapp eller fil
- Så här åtgärdar du felet att ta bort mapp eller filåtkomst nekad i Powershell
- Hur man åtgärdar Powershell Delete-mapp kan inte tas bort eftersom det inte är ett tomt fel
- Så här fixar du Powershell Delete-mapp som används av ett annat processfel
- Hur man fixar Powershell Ta bort mapp eller filmapp eller filnamn för långt fel
- Hur man åtgärdar Powershell-felet Ta bort mapp Åtkomst till sökvägen nekas
- Fler Powershell Ta bort mapp eller filexempel
- Hur tar du bort en mapp eller fil med PowerShell om den finns
- Hur man tar bort en mapp och dess undermappar med PowerShell
- Hur man tar bort en mapp eller fil äldre än x dagar (eller baserat på datum) med PowerShell
- Hur använder PowerShell för att ta bort endast mappinnehåll
- Hur använder PowerShell för att ta bort mapp och innehåll utan bekräftelse eller uppmaning
- Hur använder PowerShell för att ta bort en mapp eller fil till papperskorgen
- Hur använder PowerShell för att ta bort en mapp eller fil och exkludera andra mappar eller filer
- Hur använder PowerShell för att ta bort en mapp även om den inte är tom
- Hur använder PowerShell för att ta bort tomma mappar äldre än X dagar
- Hur man använder PowerShell för att ta bort användarprofilmapp
- Hur man använder PowerShell för att ta bort mapp från appdata
- Hur man använder PowerShell för att ta bort dold mapp
- Hur man använder PowerShell för att ta bort filer men behålla mappstrukturen
- Hur man använder PowerShell för att ta bort registernyckelmapp
- Hur man använder PowerShell för att ta bort mappnamn som
- Hur man använder PowerShell för att ta bort mappar som är större än en specificerad storlek
- Hur man använder PowerShell för att ta bort nätverksdelad mapp
- Hur man använder PowerShell för att ta bort en mapp eller fil som börjar med
- Hur man använder PowerShell för att ta bort SoftwareDistribution-mappen
- Hur man använder PowerShell för att ta bort en fil eller mapp efter att ha zippat den
- Hur man använder PowerShell för att radera en fil eller fil och sedan skriva rapport till en loggfil
2 sätt att ta bort mapp eller fil med PowerShell
PowerShell erbjuder två sätt att ta bort objekt. Du kan ta bort en mapp eller fil med PowerShell Delete Method.
För det andra kan du använda Remove-Item för att ta bort objekt i PowerShell. I de kommande två underavsnitten i det här avsnittet kommer du att lära dig hur du använder dessa metoder.
Metod 1: Använd Powershell Radera() Metod för att ta bort en mapp eller fil
För att PowerShell ska ta bort en mapp behöver du Get-ChidItem Cmdlet. Get-ChildItem Cmdlet returnerar objekten och underordnade objekten på en angiven plats.
För att lista alla filer och mappar i sökvägen E: rapporterar , kör kommandot nedan:
|_+_|Här är resultatet i PowerShell...
Detta kommando har en metod som kallas Radera . Du kan använda Radera Metod för att ta bort mappar och filer.
För att se tillgängliga metoder i kommandot ovan, skicka kommandot till Get-Member Cmdlet.
|_+_|Kommandot returnerade två typer av egenskaper. ett , System.IO.DirectoryInfo (se första bilden nedan). två , System.IO.FileInfo . Den första hänför sig till mappar i sökvägen medan den andra hänför sig till filer.
Titta noga på de två bilderna. Lägg märke till att var och en av dem har en metod som kallas Radera . Du kan använda Radera Metod i PowerShell för att ta bort en mapp eller fil.
I nästa underavsnitt kommer jag att visa hur man använder Radera Metod.
Hur man använder Radera () Metod i Powershell för att ta bort en mapp eller fil
Syntaxen för Radera Metoden är:
|_+_|Objekt är mappen med fildetaljer som returneras av Get-ChidItem Cmdlet. Vidare, Radera är den metod som vanligtvis följs av operatorn ().
För att göra det enkelt att förstå ovanstående syntaxkommando här är det ursprungliga Get-ChildItem-kommandot:
|_+_|och resultatet...
Baserat på vad jag har förklarat hittills, i teorin, kan du använda PowerShell Delete Method för att ta bort mappen som heter rapporter genom att köra kommandot nedan:
|_+_|Det sista kommandot returnerar dock felmeddelandet Katalogen är inte tom.
För att lösa detta problem behöver jag ett kommando som returnerar alla filer och mappar och undermappar i sökvägen. Sedan måste jag överföra resultatet till aForEach loop.
Här är det modifierade kommandot:
|_+_|Här är kommandot i PowerShell. Alla filer har tagits bort från den angivna sökvägen.
Det sista kommandot tar bort filerna i den angivna mappen och dess undermappar. Det tar dock inte bort mapparna.
För att ta bort mapparna, kör kommandot nedan:
|_+_|För att bekräfta det E: rapporterar nu är tom kommer jag att köra kommandot Get-ChildItem igen.
|_+_|Det ger inget tillbaka!
Innan jag går vidare till nästa avsnitt, låt mig förklara hur detta kommando raderade alla filer och undermappar.
|_+_|Get-ChildItem har två parametrar som kallas Omfatta och Återfall . I kommandot använde jag -Inkludera *.* för att berätta för PowerShell att inkludera varje fil i resultatet.
Återfall , å andra sidan, säger till Get-ChildItem att returnera alla mappar och undermappar.
I den andra delen av kommandot skickade jag Get-ChildItem till ForEach-satsen. ForEach går igenom alla objekt som returneras av Get-ChildItem och använder Radera Metod för att ta bort dem.
Som jag redan nämnde när jag introducerade det här avsnittet har PowerShell en cmdlet som heter Ta bort sak specifikt. Du kan också använda denna PowerShell Cmdlet för att ta bort en mapp eller en fil.
Nästa avsnitt tar upp hur du använder Ta bort sak . Enligt min erfarenhet använder jag Ta bort sak är bättre än att använda Radera() Metod.
Metod 2: Använd Powershell Ta bort sak Cmdlet för att ta bort en mapp eller fil
För att radera en fil eller mapp med Ta bort sak du behöver fortfarande använda PowerShell Cmdlet, Get-ChildItem. Pipa sedan resultatet till Ta bort sak .
Du kan springa Ta bort sak utan Get-ChildItem . Men av min erfarenhet, för de flesta omständigheter, fungerar det bäst att lista varan med Get-ChildItem . Led sedan utgången till Ta bort sak .I mitt första exempel i det här avsnittet vill jag använda PowerShell för att ta bort mappen som heter ITGServer2. Se skärmdumpen nedan.
är kodi krypton bättre än jarvis
Här är PowerShell-kommandot som tar bort mappen ...
|_+_|Efter att ha kört kommandot ovan är mappen borta!
I mitt andra exempel vill jag ta bort mappar och undermappar i E: eports. Kommandot nedan kommer att göra jobbet...
|_+_|Efter att ha kört det sista kommandot är alla mappar i den angivna mappen borta!
Hur man åtgärdar vanliga fel med Powershell Ta bort mapp eller fil
När du kör kommandot Remove-Item PowerShell för att ta bort en mapp eller fil kan det returnera vissa fel. Det här avsnittet täcker några av dessa fel och hur man åtgärdar dem.
Jag känner att det är bättre att diskutera lösningar på dessa vanliga fel innan vi dyker in i några verkliga sysadmin-exempel på hur man använder PowerShell för att ta bort mappar eller filer.
Så här åtgärdar du felet att ta bort mapp eller filåtkomst nekad i Powershell
Om du kör Remove-Item för att ta bort en fil eller mapp och får ett åtkomst nekad felmeddelande, försök följande:
- Ändra ägare av filen eller mappen – använd koderna nedan för att ändra ägaren till en fil eller mapp till den lokala administratören
För att köra det här kommandot, öppna PowerShell som administratör, annars misslyckas det sista kommandot.
|_+_| Ändra mappsökvägen, F:ITGFilesTextfiles till hela sökvägen för din fil eller mappNär du har ändrat ägaren till den lokala administratören, försök att köra att ta bort filen eller mappen igen med PowerShell. Om det inte fungerar, prova dessa korrigeringar.
- Lägg till Tvinga parameter till Remove-Item
- Prova metoden Delete() istället. Om du inte vet hur man använder PowerShell Delete()-metoden, se Hur man använder Delete()-metoden i Powershell för att ta bort en mapp eller fil (länk öppnas i en annan webbläsarflik) i den här guiden.
Hur man åtgärdar Powershell Delete-mapp kan inte tas bort eftersom det inte är ett tomt fel
Om du får kan inte tas bort eftersom det inte är tomt fel när du kör kommandot:
|_+_|Försök att använda Get-ChildItem med parametern Recurse. Led sedan den till Remove-Item med Tvinga och Återfall parametrar.
Här är ett exempel på kommando:
|_+_|Alternativt kan du köra Get-ChildItem och ange asterisker bakom det sista snedstrecket i sökvägen. Detta tar bort allt innehåll i mappen.
Till exempel, om jag kör kommandot...
|_+_|...och ta emot Kan inte tas bort eftersom det inte är tomt, för att åtgärda problemet, kör jag först kommandot nedan:
|_+_|Det sista kommandot tar bara bort objekten i E: eports. Slutligen, för att ta bort mappen (som nu är tom), kör jag kommandot nedan...
|_+_|Så här fixar du Powershell Delete-mapp som används av ett annat processfel
Om du får Remove-Item returnerar felmeddelandet eftersom det används av en annan process, måste du inkludera Force-parametern.
Här är originalet som returnerade felmeddelandet...
|_+_|För att åtgärda det här problemet, kör kommandot nedan för en fil:
|_+_|Det senaste kommandot raderade filen framgångsrikt...
Hur man fixar Powershell Ta bort mapp eller filmapp eller filnamn för långt fel
Detta verkar vara en känd begränsning med PowerShell.
Men för att åtgärda detta problem kan du använda till dig cmd kommando. Skicka sedan resultatet till kommandot Remove-Item.
Här är ett exempel…
|_+_| Kommandot dir är cmd-motsvarigheten till PowerShells Get-ChildItem.Hur man åtgärdar Powershell-felet Ta bort mapp Åtkomst till sökvägen nekas
PowerShell Remove-Item-kommandot skickar felmeddelandet Access to the Path is Denied om du försöker ta bort en mapp som du inte har behörighet att ta bort.
Anledningen till att du får detta felmeddelande är att du inte har tillgång till mappen. Innan du kör kommandot Remove-Item, kör följande kommandon för att ge lokala administratörer åtkomst till mappen.
Den här korrigeringen förutsätter att kontot du använde för att logga in är medlem i den lokala administratörsgruppen. Innan du kör kommandot nedan i PowerShell ISE ändrar du sökvägen F:ITGFilesTextfiles till den mappsökväg du försöker ta bort. |_+_|När du är klar med att köra skriptet ovan, kör kommandot Remove-Item igen.
Fler Powershell Ta bort mapp eller filexempel
Det här sista avsnittet i guiden tar upp flera exempel på hur du använder PowerShell för att radera filer eller mappar.
Hur tar du bort en mapp eller fil med PowerShell om den finns
Eftersom det här exemplet har ett villkor – om mappen eller filen finns – kontrollerar den första sökvägen för kommandot om objektet finns.
Du kan använda Test-Path kommando för att kontrollera om en mapp eller fil finns. Sedan använder du IF-villkorssatsen för att ta bort mappen eller filen om den finns.
Vi kan kombinera båda kommandona i IF-satsblocket...
I det här exemplet vill jag ta bort en mapp som heter ITGServer i sökvägen F:ITGFilesTextfiles – om mappen finns.
Här är kommandot...
|_+_|I det här exemplet finns den här mappen så den togs bort. Men om vi försöker kommandot med en fil som inte finns kommer vi att få meddelandet i Annan block av IF-satsen.
Hur man tar bort en mapp och dess undermappar med PowerShell
För att ta bort en mapp och alla undermappar, kör Ta bort sak kommandot med Återfall och Tvinga parametrar.
Här är ett exempel…
|_+_|Hur man tar bort en mapp eller fil äldre än x dagar (eller baserat på datum) med PowerShell
I det här exemplet, eftersom vi vill ta bort filer eller mappar som är äldre än x dagar, är det första steget att hämta dagreferensen. Detta görs med kommandot Get-Date.
Men eftersom vi vill ta bort objekt som är äldre än x dagar måste vi ange x dagar som ett negativt värde. Till exempel, för att ta bort alla filer eller mappar som är äldre än 7 dagar, hämta dagreferensen med kommandot nedan:
|_+_|Använd sedan Get-ChildItem kommandot för att hämta LastWriteTime objektets egendom. De LastWriteTime egenskapen registrerar det senaste datumet då en mapp eller fil ändrades.
Utöver LastWriteTime egenskap, returnerar kommandot Get-ChildItem en annan egenskap som kallas PSIsContainer . PSIsContainer-egenskapen skiljer en fil från en mapp.
Om PSIsContainer är sant betyder det att objektet är en mapp. Å andra sidan, om PSIsContainer är falsk betyder det att objektet är en fil.
Innan jag introducerar LastWriteTime-egenskapen, låt mig först köra ett Get-ChildItem-kommando och filtrera efter egenskapen PSIsContainer:
|_+_|Detta kommando returnerade ett enda objekt anropat ITG eftersom detta är den enda mappen i sökvägen F:ITGFilesTextfiler.
Alternativt, för att bara lista filer i sökvägen, kör kommandot nedan:
|_+_|Den här gången, eftersom jag specificerade av $ _. PSIsConta sänker sig -eq $FALSE , PowerShell returnerar alla icke-mappar.
Nu när du förstår hur man listar mappar eller filer i en mapp, låt oss presentera LastWriteTime-egenskapen. Som jag nämnde tidigare, registreras det senaste datumet och tiden då objektet ändrades i egenskapen LastWriteTime.
Dessa kommandon inkluderar egenskapen LastWriteTime:
|_+_|Det första kommandot returnerar alla mappar som senast ändrades före dagreferensen sparad i variabeln $DaysRef. I det här exemplet är dagsreferensen 7 dagar.
Tvärtom, det andra kommandot returnerar alla filer som ändrats de senaste x dagarna – där x dagar är lika med 7 i detta exempel.
Det andra och sista steget i detta exempel som använder PowerShell för att ta bort mappar med filer som är äldre än x dagar är att skicka kommandot Where-Object till Remove-Item.
Skriptet nedan slutför uppgiften att ta bort filerna och mappen...
|_+_| Om ingen fil eller mapp uppfyller LastWriteTime-kriterierna kommer ingen att raderas.Hur använder PowerShell för att ta bort endast mappinnehåll
I det här exemplet kommer jag att ta bort innehållet i F:ITGFilesfolder men inte själva mappen.
Om du bara vill ta bort innehållet i en mapp men behålla mappen, kör kommandot Remove-Item som visas i exemplet nedan:
|_+_|Tricket är att lägga till en asterisk efter det sista snedstrecket i slutet av mappsökvägen.
De Återfall parametern tar bort alla mappar och undermappar i den angivna sökvägen. I det här exemplet, F:ITGFilesfolder*
Hur använder PowerShell för att ta bort mapp och innehåll utan bekräftelse eller uppmaning
Tricket att ta bort en mapp och innehåll utan att be dig om bekräftelse är att lägga till Tvinga och Bekräfta:$false parametrar till Ta bort sak kommando.
Om jag kör kommandot nedan utan att lägga till Bekräfta:$false parametern kommer jag att kunna bekräfta att jag vill ta bort mappen och allt dess innehåll.
|_+_|Men om jag inte vill få denna bekräftelseprompt kommer jag att inkludera Confirm:$false-parametern.
|_+_|Kommandot bör köras utan att be om att bekräfta åtgärden. Observera också att parametern som stoppar bekräftelseprompten är Bekräfta:$false .
Om det sista kommandot fortfarande ber om bekräftelse, kör först Get-ChildItem kommando. Led sedan utgången till kommandot Remove-Item enligt nedan:
|_+_|Tyvärr tar det sista kommandot inte bort den överordnade mappen. För att ta bort den överordnade mappen och allt dess innehåll, lägg till parametern -filter till kommandot Get-ChildItem som visas i det här kommandot:
|_+_|Hur använder PowerShell för att ta bort en mapp eller fil till papperskorgen
Om du tar bort en mapp eller fil med kommandot Remove-Item, raderas den permanent. Mappen flyttas med andra ord inte till papperskorgen.
Tyvärr finns det ingen PowerShell Cmdlet för att radera en mapp eller fil till papperskorgen. Jag försökte skapa en anpassad funktion för den här uppgiften. Jag hittade dock en befintlig funktion skapad av en stackoverflow.com bidragsgivare.
För att göra den tillgänglig för våra läsare laddade jag upp en kopia av funktionen till S Zone. Följ stegen nedan för att ladda ner och använda funktionen:
- Klicka på ladda ned Remove-ItemToRecycleBin.zip för att ladda ner funktionen
- Packa sedan upp den nedladdade zip-filen. När du packar upp filen kommer den att skapa en mapp som heter Remove-ItemToRecycleBin.
- Slutligen, kopiera mappen till din Windows 10 PowerShell-profilmapp. Mappen finns i sökvägen nedan
När du har kopierat modulmappen till din modulmapp kan du använda den som vilket annat PowerShell-kommando som helst. För att illustrera hur det fungerar kommer jag att ta bort E: apporter till papperskorgen.
Innan jag kör kommandot men här är en skärmdump av min tomma papperskorg.
Nu, för att använda PowerShell för att ta bort mappen, E: apporterar till papperskorgen, kör jag kommandot nedan:
|_+_|Efter att ha kört kommandot ovan kommer rapportmappen att flyttas till papperskorgen. Se skärmdumpen nedan...
Hur använder PowerShell för att ta bort en mapp eller fil och exkludera andra mappar eller filer
Kommandot Remove-Item har en Utesluta parameter. Denna parameter används för att utesluta en mapp eller fil som du inte vill radera.
Här är ett exempel. Jag vill ta bort alla mappar i sökvägen, F:ITGFilesTextfiles5. Jag vill dock inte ta bort folder3.
Som du kan se från skärmdumpen ovan har mappen både mappar och filer.
För att bara ta bort mappar måste jag först använda kommandot Get-ChildItem för att lista alla objekt i sökvägen. Led sedan utdata till Where-Object och filtrera efter PSIsContainer-egenskapen.
|_+_|Efter att ha kört det sista kommandot raderas alla mappar men inte mappar3. Du märker också att filer i F:ITGFilesTextfiles5 inte raderades.
Anledningen till att endast mappar togs bort är att inom Var-Objekt block, filtrerade jag med {$_.PSIsContainer -eq $TRUE}. PSIsContainer-egenskapen anger att ett objekt är en mapp.
Om du går vidare har Remove-Item också en parameter som heter Inkludera. Den här parametern utför motsatt åtgärd till parametern Exclude.
Jag kan uppnå samma resultat som det senaste kommandot genom att ersätta Exclude med Include. Men till skillnad från föregående kommando kommer jag nu att lista de mappar jag vill ta bort.
Här är ett exempel på kommando som tar bort bara mapp1 från F:ITGFilesTextfiles5.
|_+_|Efter att ha kört föregående kommando kommer du att märka att endast mapp1 raderades.
Om du vill ta bort filer istället för mappar, ändra $_.PSIsContainer -eq $TRUE till $_.PSIsContainer -eq $FALSEHur använder PowerShell för att ta bort en mapp även om den inte är tom
Om du vill ta bort en mapp med PowerShell – även om mappen inte är tom – inkludera Tvinga och Återfall parametrar. Här är ett exempel.
|_+_|Hur använder PowerShell för att ta bort tomma mappar äldre än X dagar
Följ stegen nedan för att använda PowerShell för att ta bort tomma mappar äldre än x dagar...
I det här exemplet vill jag ta bort mappar som är äldre än 90 dagar från min Windows 10-profil, C:UsersVictorA.
- Använd Get-ChildItems för att bara lista mappar i den angivna sökvägen:
Kommandot listar alla mappar i den angivna sökvägen. Om du kommer ihåg, i tidigare kommandon i den här guiden, för att returnera mappar, använde vi Var-Objekt att filtrera efter PSIsContainer fast egendom. Men jag bestämmer mig för att uppnå samma resultat med hjälp av Katalog parameter för Get-ChildItem .
- Skicka sedan resultatet av kommandot Get-ChildItem till Where-Object. Inom kommandot Where-Object lägger du till ett filter som endast returnerar tomma mappar. Här är kommandot...
- Nu måste vi lägga till sökvägen som returnerar mappar i föregående lista äldre än 90 dagar. Detta involverar två kommandon.
I det första kommandot kommer jag att använda Get-Date för att bestämma datumet för tidsperioden. I exemplet för 90 dagar sedan. För att göra det enklare kommer jag att spara resultatet i en variabel som heter $DaysRef.
|_+_|Sedan, i det andra kommandot, kommer jag att inkludera ett annat filter i Where-Object-delen av det sista kommandot.
|_+_|Här är resultatet av det senaste kommandot...
Som du kan se returneras nu bara två tomma mappar av det sista kommandot. Jag körde det här kommandot den 4 augusti 2021. Som du kan se, LastWriteTime av de två mapparna är 16/06/2021 16:29.
För amerikanska läsare är detta datum 16 augusti 2021 (2021-06-16)Det betyder att sista gången de två mapparna senast ändrades är mer än 90 dagar från det att jag körde kommandot.
- Slutligen, för att ta bort dessa tomma mappar som är äldre än 90 dagar, skicka det sista kommandot till kommandot Remove-Item PowerShell.
Hur man använder PowerShell för att ta bort användarprofilmapp
För att ta bort användarprofilmappen med kommandona i det här avsnittet MÅSTE du öppna PowerShell som administratör . Annars kan du få ett felmeddelande om åtkomst nekadDet första steget för att använda PowerShell för att ta bort en användares profilmapp är att bestämma sökvägen till användarens mapp. PowerShell har en miljövariabel som returnerar sökvägen till Windows installationskatalog.
Variabeln är...
|_+_|Detta kommando returnerar en sökväg som C:WINDOWS. Samtidigt finns mappen Användare (som innehåller alla mappar för användarprofiler) i roten på enheten där Windows är installerat.
I mitt exempel finns mappen Användare i enhet C:WINDOWS.
Men för att returnera C: från C:WINDOWS, använd splitmetoden som visas i kommandot nedan.
|_+_|Kommandot returnerar C: och WINDOWS. Nästa steg är att returnera C: – detta är det första objektet i arrayen.
För att komma åt detta objekt, inkludera denna [0] till det sista kommandot som visas nedan.
|_+_|Nu har vi C:
Jag nämnde tidigare att alla användarprofiler finns i mappen Användare. Från det sista kommandot kommer jag att lägga till Users till returen C:Users
|_+_|Nu har vi den fullständiga sökvägen till mappen Användare.
I nästa kommando kommer jag att använda Get-ChildItem för att lista alla användarprofilmappar i mappen Användare. Men för att undvika fel kommer jag först att spara det sista kommandot i en variabel.
|_+_|Nu kan jag använda Get-ChildItem för att returnera alla användarprofilmappar i mappen Användare. Här är kommandot:
|_+_|Och resultatet i PowerShell...
Den sista biten blir att skicka det sista kommandot till Remove-Item. Du måste dock använda parametern Filter för att bara ta bort den användarprofilmapp som du vill bli av med.
I det här exemplet vill jag ta bort användarprofilmappen som heter victo och alla dess undermappar
Här är det sista kommandot som använder PowerShell för att ta bort användarprofilmappen:
|_+_|Efter att ha kört det här kommandot, nu om du kör kommandot nedan, kommer den borttagna profilen inte längre att listas.
|_+_|
Hur man använder PowerShell för att ta bort mapp från appdata
PowerShell har två miljövariabler för en inloggad användares AppData-mapp.
|_+_|Vilken miljövariabel du bestämmer dig för att använda beror på platsen för mappen du vill ta bort. Men om du inte är säker på platsen för mappen du vill ta bort kan du söka på båda platserna.
För att uppnå detta kommer jag att spara båda miljövariablerna i en variabel som heter $appdatafolders...
|_+_|Sedan kommer jag att använda ForEach-slingan för att kontrollera båda platserna. Här är koden som gör det här jobbet...
|_+_| Jag inkluderade WhatIf-parametern så att PowerShell inte tar bort mappen. Istället kommer PowerShell att visa åtgärden den skulle utföra om WhatIf-parametern inte ingick.Här är resultatet av kommandot i PowerShell. Bilden till höger på skärmdumpen är mappen i min AppData-mapp.
Hur man använder PowerShell för att ta bort dold mapp
Kommandot Get-ChildItem har en parameter som heter Hidden. Om du vill lista dolda mappar i en angiven mapp, inkludera parametern Hidden.
I min skärmdump nedan har jag 3 mappar (inte eller de är dolda).
För att demonstrera hur man använder PowerShell för att ta bort dolda mappar kommer jag att dölja Textfiles3. Nu är mappen dold.
För att lista den dolda mappen kör jag kommandot nedan...
|_+_|Som förväntat listar kommandot bara den dolda mappen.
För att ta bort den dolda mappen med PowerShell kommer jag nu att skicka det sista kommandot till kommandot Remove-Item.
|_+_|För att bekräfta att mappen raderades aktiverade jag attributet show Hidden items i File Explorer.
aktivera starz apple tv comcast
Hur man använder PowerShell för att ta bort filer men behålla mappstrukturen
Det kan finnas tillfällen där du kanske vill ta bort alla filer i en mapp, inklusive dess undermappar men behålla mappstrukturen.
För att uppnå detta måste du köra kommandot Get-ChildItem och ange parametern File. När du använder parametern File listar Get-ChildItem endast filer i den angivna mappen.
För att visa hur detta fungerar har jag skapat en mappstruktur som visas i skärmdumpen nedan:
Som framgår av skärmdumpen har mapp1 två undermappar, mapp2 och mapp3. Dessutom har mapp2 och mapp3 några filer.
För att använda Get-ChildItem för att endast visa filer i sökvägen, F:ITGFilesfolder1, kör jag kommandot nedan:
|_+_|Kommandot visar bara filer i de två sökvägarna, F:ITGFilesfolder1folder2 och Directory: F:ITGFilesfolder1folder3
Slutligen, för att ta bort filerna men behålla mappstrukturen, skicka det sista kommandot till Remove-Item...
|_+_|Kommandot raderar alla filer men lämnar mappstrukturen intakt!
Hur man använder PowerShell för att ta bort registernyckelmapp
Kommandot för att lista och ta bort en registernyckelmapp är samma kommando som används för att ta bort vanliga mappar.
Om du har läst den här guiden från början har vi hittills använt två kommandon:
Get-ChildItem : används för att lista objekt i en angiven sökväg
Ta bort sak : används för att radera filerna/mapparna som listas av Get-ChildItem
Den enda skillnaden är dock hur du kommer åt registernyckelmappar.
Det finns flera sätt att formatera en registernyckel för användning i kommandona Get-ChildItem och Remove-Item. Men för det här exemplet kommer jag att använda metoden nedan:
|_+_|I det här exemplet vill jag komma åt registernyckelmappen, HKEY_CURRENT_USERControl PanelDesktop. Som du kan se i kommandoformatet ovan, för att göra detta, la jag till ordet register, följt av två kolon, ::
För att lära dig mer om hur PowerShell fungerar med Windows-registret, läs vår guide – Hur man använder PowerShell för att läsa registervärde .
Flytta exemplet till nästa steg, för att lista objekten i ovanstående registernyckelmapp, kör kommandot nedan:
|_+_|Kommandot visar alla undernyckelmappar i den angivna registernyckelmappen.
Om jag vill ta bort en angiven mapp kör jag Get-ChildItem först. Sedan skickar jag utdata till Select-Object
|_+_|Kommandot ovan visar den fullständiga sökvägen till alla undernycklar i min ursprungliga registernyckelmapp:
Sedan, för att ta bort undernycklarna, skickar jag det sista kommandot till Remove-Item. Men för att ta bort en specifik undernyckelmapp kommer jag först att skicka det sista kommandot till Where-Object och filtrera efter namnet på undernyckeln jag vill ta bort:
|_+_|Det sista kommandot returnerar nu endast den angivna sökvägen för registerundernyckelns mapp.
Slutligen, för att ta bort denna mappundernyckel med PowerShell, skicka det sista kommandot till Remove-Item. Innan dess måste du ändra registernyckeln och skicka den till Get-Item.
För att göra det enkelt kommer jag att spara det sista kommandot i en variabel
|_+_|Formatera den sedan för kommandot Get-Item
|_+_|Slutligen skickar du den formaterade nyckelvägen till Get-Item...
|_+_|Nu kan vi ta bort värdet genom att skicka det sista kommandot till Remove-Item (jag inkluderade whatif-parameter eftersom jag INTE vill ta bort den här nyckeln)
Wii-spel för switch|_+_|
Och här är resultatet...
Hur man använder PowerShell för att ta bort mappnamn som
Under andra exempel i den här guiden har jag visat hur man använder PowerShell för att ta bort ett mappnamn med hjälp av Gilla-filtret. Dessutom, som redan visats i tidigare exempel, kan detta filter tillämpas i kommandot Get-ChildItem eller i Where-Object-kommandot.
Till exempel, för att ta bort alla filer och mappar med namn som fil i sökvägen F:ITGFiles, kan jag använda kommandot nedan:
|_+_| För att filtret ska fungera kan du behöva använda ett jokertecken. I det här exemplet använder jag asterisken jokertecken.
Jag kan uppnå samma resultat genom att koppla Get-ChildItem till Where-Object. Utför sedan filtreringen i Where-Object.
|_+_|Kommandot returnerar samma resultat som det senaste kommandot!
Som med andra exempel i den här guiden, för att ta bort mappen, skicka utdata från något av de två kommandona till Remove-Item.
Hur man använder PowerShell för att ta bort mappar som är större än en specificerad storlek
Om du vill ta bort mappar som är större än en angiven storlek med PowerShell måste du först beräkna mappstorlekar i den angivna sökvägen.
Du måste dock lista hela sökvägen till undermapparna i den angivna mappsökvägen. För att lista den fullständiga sökvägen till alla undermappar i en mappsökväg, kör ett kommando som liknar det nedan:
|_+_|Kommandot listar de fullständiga sökvägarna till alla undermappar i mappsökvägen, F:ITGFiles
Använda Djup parameter med ett 0-värde istället för Återfall säkerställer att endast undermapparna på första nivån returneras.
Nu när jag har hela sökvägen till undermappen kommer jag att använda denna information för att beräkna storleken på varje undermapp. Men för att ha den fullständiga sökvägen till undermapparna (krävs för att radera den senare) och storleken måste jag skapa ett anpassat skript.
Här är hela manuset:
|_+_|Och här är resultatet av kommandot i PowerShell ISE.
Som du kan se från skärmdumpen returnerar skriptet endast en fil som uppfyller kriterierna för storlek (10 MB).
Uppenbarligen har vi en sista bit för att slutföra uppgiften - ta bort filen. För att ta bort filen som uppfyller storlekskravet ändrade jag IF-satsen som visas i det här skriptet...
|_+_|Så här är det sista skriptet som tar bort mappar som är större än ett angivet värde
|_+_| För att använda skriptet, ändra sökvägen F:ITGFiles i Get-ChildItem – rad 1. Ändra också storleken på mappen du vill ta bort – från 10 (i MB) till önskad storlek.Hur man använder PowerShell för att ta bort nätverksdelad mapp
Processen att använda PowerShell för att ta bort nätverksmappar skiljer sig inte från att ta bort lokala mappar. Den enda skillnaden är hur du anger en nätverksmapp.
Förutom hur du anger en nätverksmapp behöver du också ha rätt behörigheter. Närmare bestämt måste du ha behörighet att ändra dela.
Dessutom måste du också ha modifiera NTFS-säkerhetstillstånd.
När dessa behörighetskrav är uppfyllda kan du komma åt nätverksmappen med kommandot Get-ChildItem. Sedan, för att ta bort mappen, skicka utdata från Get-ChildItem till Remove-Item.
För att demonstrera hur man använder PowerShell för att ta bort en nätverksmapp kommer jag att använda en delad mapp som heter TestShare. Mappen finns på min Windows 11 test PC som heter ITGWIN11BETA.
För att lista innehållet i den delade nätverksmappen använder jag kommandot Get-ChildItem som visas nedan...
|_+_|Precis som en lokal mapp listar kommandot alla mappar och undermappar i den delade nätverksmappen.
Från denna punkt kan du skicka det sista kommandot direkt till Remove-Item. Alternativt kan du applicera ett filter innan du kopplar det till Remove-Item.
Om du till exempel vill ta bort en specifik mapp kan du använda Filtrera parameter i Get-ChildItem. Alternativt kan du skicka Get-ChildItem till Where-Object och använda Filtrera parameter i Where-Object.
Slutligen, för att ta bort objektet i den delade nätverksmappen, skicka resultatet till Remove-Item.
Hur man använder PowerShell för att ta bort en mapp eller fil som börjar med
Om du vill ta bort mappar eller filer som börjar med ett visst namn, kan du använda Filtrera parametern i Get-ChildItem Cmdlet för att lista filerna. Ipe sedan resultatet till Remove-Item.
Alternativt kan du använda Radera() Metod i Get-ChildItem.
För att illustrera detta exempel kommer jag att ta bort alla filer och mappar som börjar med f i skärmdumpen nedan.
Som jag nämnde tidigare är det första steget att använda Get-ChildItem Cmdlet med parametern Filter. Här är ett exempel på kommando:
|_+_| Ett annat alternativ kan vara att skicka Get-ChildItem till Where-Object och utföra filtreringen i Where-Object .Kommandot listar alla filer som börjar med f. Se skärmdumpen nedan:
Det sista steget för att ta bort alla mappar och filer som börjar med f är att pipe outputen av
|_+_|Hur man använder PowerShell för att ta bort SoftwareDistribution-mappen
Som du kanske redan vet lagrar Windows nedladdade uppdateringar i mappen SoftwareDistribution. Helst behöver du inte ta bort den här mappen.
Men om Windows Update-databasen är korrupt, är ett sätt att fixa det att ta bort Programvarudistribution mapp. Innan du gör det måste du först stoppa Windows Update.
För att stoppa Windows Update-tjänsten, kör PowerShell som administratör. Kör sedan kommandot nedan:
|_+_| Om du inte stoppar Windows Update-tjänsten kommer du INTE att kunna ta bort Programvarudistribution mappFör att använda PowerShell för att ta bort SoftwareDistribution-mappen kör sedan kommandona nedan:
|_+_|Slutligen, för att återskapa SoftwareDistribution-mappen, starta om Windows Update-tjänsten
|_+_|Hur man använder PowerShell för att ta bort en fil eller mapp efter att ha zippat den
För att zippa en fil eller mapp använd kommandot Compress-Archive som visas i exemplet nedan:
|_+_| Ändra LiteralPath till källsökvägen för filen eller mappen du vill zippa. Ändra också DestinationPath till den sökväg du vill spara den zippade filen.När du har zippat filen, använd kommandot nedan för att ta bort den...
|_+_|Hur man använder PowerShell för att radera en fil eller fil och sedan skriva rapport till en loggfil
Om du vill använda PowerShell för att ta bort en fil eller mapp och sedan rapportera åtgärderna till en loggfil, måste du först definiera loggfilens namn.
I det här exemplet vill jag ha två loggfiler, en för att logga framgång och den andra för att logga fel.
Jag gillar vanligtvis att skapa mina loggfiler baserat på datum. För det här exemplet kommer jag först att skapa en datumstämpel och spara den i en variabel:
|_+_|Sedan kommer jag att skapa två loggfiler baserat på datumstämpeln...
|_+_|Det saknas en del – katalogsökvägen för att spara loggfilerna. För att lägga till denna bit kommer jag att spara sökvägen i en variabel...
|_+_|Lägg sedan till sökvägen till loggfilerna ovan...
|_+_|De två sista kommandona skapar två loggfiler. För detaljer se skärmdumpen nedan...
Nu när jag har skapat våra loggfiler kommer jag nu att skapa ett PowerShell-skript som tar bort filer och mappar i en angiven sökväg. Skriv sedan rapporter till loggfilerna.
I det här exemplet vill jag ta bort filer i mappen WindowsTemp. Det första steget är att spara sökvägen till denna mapp i en variabel...
|_+_|Sedan kommer jag att använda Get-ChildItem för att lista innehållet i mappen och skicka utdata till Remove-Item.
Men för att kunna fånga felen måste jag bifoga hela kommandot i en Try, Catch.
Här är hela manuset...
|_+_| För att använda skriptet kopiera det till PowerShell ISE. Ändra sedan $Path-variabeln till sökvägen till mappen du vill ta bort. Ändra också $LogPath till den mappsökväg du vill spara dina loggfiler.Det är det – vår omfattande guide för att använda PowerShell för att radera filer eller mappar! Jag hoppas att du tyckte att guiden var till hjälp.
Om du tyckte att det var användbart, vänligen rösta Ja till Var det här inlägget användbart? Nedan. Alternativt kan du dela detaljerad feedback med formuläret LÄMNA ETT SVAR i slutet av denna sida.
Slutligen, för fler PowerShell-guider med exempel, besök vår Windows PowerShell How-To-sida. Du kan också ha nytta av våra GRATIS PowerShell-utbildningsguider.


