Ako odstrániť priečinky alebo súbory pomocou PowerShell

18. augusta 2021 10262 Názory Ako odstrániť priečinky alebo súbory pomocou PowerShell

Chcete odstrániť súbory a priečinky pomocou PowerShell, ale neviete ako? Tento článok vám poskytne podrobný návod, ako použiť PowerShell na odstránenie priečinka, súboru alebo všetkých priečinkov a súborov v zadanej ceste.





Tento blogový príspevok vás naučí rôzne spôsoby odstraňovania priečinkov a súborov pomocou prostredia PowerShell. Ak to znie zaujímavo, čítajte ďalej!



Sprievodca začína vysvetlením 2 spôsobov použitia PowerShell na odstránenie priečinkov a súborov. Potom sa v druhej časti dozviete, ako opraviť bežné chyby spojené s odstraňovaním súborov a priečinkov pomocou PowerShell.

Napokon, príručka obsahuje viac ako 20 príkladov.



Prehľadávať témy príspevkov



2 spôsoby, ako odstrániť priečinok alebo súbor pomocou prostredia PowerShell

PowerShell ponúka dva spôsoby odstraňovania položiek. Priečinok alebo súbor môžete odstrániť pomocou metódy odstránenia prostredia PowerShell.

Po druhé, môžete použiť Remove-Item na odstránenie položiek v PowerShell. V ďalších 2 podsekciách tejto časti sa dozviete, ako tieto metódy používať.



Metóda 1: Použite Powershell Odstrániť () Metóda na odstránenie priečinka alebo súboru

Na odstránenie priečinka v prostredí PowerShell potrebujete cmdlet Get-ChidItem. Get-ChildItem Rutina vracia položky a podradené položky na určenom mieste.



Ak chcete zobraziť zoznam všetkých súborov a priečinkov v ceste E: správy , spustite príkaz nižšie:

|_+_|

Tu je výsledok v PowerShell…

Ako používať Powershell Delete()

Tento príkaz má volanú metódu Odstrániť . Môžete použiť Odstrániť Metóda na odstránenie priečinkov a súborov.

Ak chcete zobraziť dostupné metódy vo vyššie uvedenom príkaze, presuňte príkaz do cmdlet Get-Member.

|_+_|

Príkaz vrátil dva typy vlastností. jeden , System.IO.DirectoryInfo (pozri prvý obrázok nižšie). dva , System.IO.FileInfo . Prvý sa týka priečinkov v ceste, zatiaľ čo druhý sa týka súborov.

Pozrite sa pozorne na dva obrázky. Všimnite si, že každý z nich má metódu s názvom Odstrániť . Môžete použiť Odstrániť Metóda v PowerShell na odstránenie priečinka alebo súboru.

V ďalšej podsekcii ukážem, ako používať Odstrániť Metóda.

Ako použiť Odstrániť () Metóda v Powershell na odstránenie priečinka alebo súboru

Syntax súboru Odstrániť Metóda je:

|_+_|

Objekt je priečinok s podrobnosťami o súbore, ktorý vracia cmdlet Get-ChidItem. ďalej Odstrániť je metóda, za ktorou zvyčajne nasleduje operátor ().

Na uľahčenie pochopenia vyššie uvedeného príkazu syntaxe je tu pôvodný príkaz Get-ChildItem:

|_+_|

a výsledok…

Ako používať Powershell Delete()

Na základe toho, čo som doteraz vysvetlil, by ste teoreticky mohli použiť metódu odstránenia PowerShell na odstránenie priečinka s názvom správy spustením príkazu nižšie:

|_+_|

Posledný príkaz však vráti chybové hlásenie Adresár nie je prázdny.

Na vyriešenie tohto problému potrebujem príkaz, ktorý vráti všetky súbory a priečinky a podpriečinky v ceste. Potom musím výsledok preniesť do slučky aForEach .

Tu je upravený príkaz:

|_+_|

Tu je príkaz v PowerShell. Všetky súbory boli odstránené zo zadanej cesty.

Posledný príkaz vymaže súbory v zadanom priečinku a jeho podpriečinkoch. Neodstráni však priečinky.

Ak chcete odstrániť priečinky, spustite príkaz nižšie:

|_+_|

Aby som to potvrdil E: správy je teraz prázdny, znova spustím príkaz Get-ChildItem.

|_+_|

Nič to nevracia!

Skôr než prejdem k ďalšej časti, dovoľte mi vysvetliť, ako tento príkaz odstránil všetky súbory a podpriečinky.

|_+_|

Get-ChildItem má dva parametre, tzv Zahrnúť a Rekurzia . V príkaze som použil -Zahrnúť *.* povedať PowerShellu, aby do výsledku zahrnul každý súbor.

Rekurzia , na druhej strane hovorí Get-ChildItem, aby vrátil všetky priečinky a podpriečinky.

V druhej časti príkazu som pripojil Get-ChildItem na príkaz ForEach . ForEach prechádza cez všetky objekty vrátené Get-ChildItem a používa Odstrániť Spôsob, ako ich odstrániť.

Ako som už spomenul, keď som predstavil túto časť, PowerShell má cmdlet s názvom Odstrániť položku konkrétne. Túto cmdlet prostredia PowerShell môžete použiť aj na odstránenie priečinka alebo súboru.

Nasledujúca časť popisuje spôsob použitia Odstrániť položku . Podľa mojich skúseností používanie Odstrániť položku je lepšie ako používať Odstrániť () Metóda.

Metóda 2: Použite Powershell Odstrániť položku Rutina na odstránenie priečinka alebo súboru

Ak chcete odstrániť súbor alebo priečinok pomocou Odstrániť položku stále musíte použiť cmdlet PowerShell, Get-ChildItem. Potom výsledok do Odstrániť položku .

Môžete bežať Odstrániť položku bez Get-ChildItem . Z mojej skúsenosti však vo väčšine prípadov najlepšie funguje zoznam položky s Get-ChildItem . Potom pripojte výstup do Odstrániť položku .

V mojom prvom príklade v tejto časti chcem použiť PowerShell na odstránenie priečinka s názvom ITGServer2. Pozrite si snímku obrazovky nižšie.

Metóda 2: Na odstránenie priečinka alebo súboru použite rutinu Powershell Remove-Item

Tu je príkaz PowerShell, ktorý odstráni priečinok…

|_+_|

Po spustení vyššie uvedeného príkazu je priečinok preč!

Metóda 2: Na odstránenie priečinka alebo súboru použite rutinu Powershell Remove-Item

V mojom druhom príklade chcem odstrániť priečinky a podpriečinky v E: eports. Nižšie uvedený príkaz vykoná úlohu...

|_+_|

Po spustení posledného príkazu sú všetky priečinky v zadanom priečinku preč!

Metóda 2: Na odstránenie priečinka alebo súboru použite rutinu Powershell Remove-Item

Ako opraviť bežné chyby pomocou programu Powershell na odstránenie priečinka alebo súboru

Ako opraviť bežné chyby pomocou programu Powershell na odstránenie priečinka alebo súboru

Keď spustíte príkaz Remove-Item PowerShell na odstránenie priečinka alebo súboru, môže to vrátiť niektoré chyby. V tejto časti sú uvedené niektoré z týchto chýb a ako ich opraviť.

Myslím si, že je lepšie diskutovať o riešeniach týchto bežných chýb predtým, ako sa ponoríme do niekoľkých skutočných príkladov správcu systému, ako používať PowerShell na odstránenie priečinkov alebo súborov.

Ako opraviť chybu Powershell pri odstránení priečinka alebo odmietnutia prístupu k súboru

Ak spustíte Remove-Item na odstránenie súboru alebo priečinka a zobrazí sa chybové hlásenie Access Denied, skúste nasledovné:

  1. Zmena vlastníka súboru alebo priečinka – pomocou nižšie uvedených kódov zmeňte vlastníka súboru alebo priečinka na lokálneho správcu

Ak chcete spustiť tento príkaz, otvorte PowerShell ako správca, inak posledný príkaz zlyhá.

|_+_| Zmeňte cestu k priečinku F:ITGFilesTextfiles na úplnú cestu k vášmu súboru alebo priečinku

Po zmene vlastníka na lokálneho správcu skúste znova spustiť odstránenie súboru alebo priečinka pomocou prostredia PowerShell. Ak to nefunguje, skúste tieto opravy.

  1. Pridajte sila parameter na Odstrániť položku
  2. Skúste namiesto toho metódu Delete(). Ak neviete, ako používať metódu PowerShell Delete(), pozrite si časť Ako používať metódu Delete() v PowerShelli na odstránenie priečinka alebo súboru (odkaz sa otvorí na inej karte prehliadača) v tejto príručke.

Ako opraviť Powershell Delete Folder sa nedá odstrániť, pretože nie je prázdny

Ak dostanete, nemožno ho odstrániť, pretože to nie je prázdne, chyba pri spustení príkazu:

|_+_|

Skúste použiť Get-ChildItem s parametrom Recurse. Potom ho presuňte na Remove-Item s sila a Rekurzia parametre.

Tu je vzorový príkaz:

|_+_|

Prípadne môžete spustiť Get-ChildItem a zadať hviezdičky za poslednou lomkou v ceste. Tým sa odstráni celý obsah priečinka.

Napríklad, ak spustím príkaz...

|_+_|

...a dostanem Nedá sa odstrániť, pretože nie je prázdny, aby som problém vyriešil, najskôr spustím príkaz nižšie:

|_+_|

Posledný príkaz vymaže iba položky v E:prehľady. Nakoniec, ak chcete odstrániť priečinok (ktorý je teraz prázdny), spustím príkaz nižšie…

|_+_|

Ako opraviť chybu pri odstránení priečinka Powershell, ktorý používa iný proces

Ako opraviť Powershell Delete Folder

Ak dostanete správu Remove-Item vráti chybové hlásenie, pretože ju používa iný proces, musíte zahrnúť parameter Force.

Tu je originál, ktorý vrátil chybové hlásenie...

|_+_|

Ak chcete tento problém vyriešiť, spustite príkaz uvedený nižšie pre súbor:

|_+_|

Posledný príkaz úspešne odstránil súbor...

Ako opraviť chybu Powershell pri vymazaní priečinka alebo súboru, priečinok alebo názov súboru je príliš dlhý

Zdá sa, že ide o známe obmedzenie PowerShell.

Na vyriešenie tohto problému však môžete použiť vám príkaz cmd. Potom prepojte výsledok do príkazu Remove-Item.

Tu je príklad…

|_+_| Príkaz dir je ekvivalentom cmd Get-ChildItem v PowerShell.

Ako opraviť chybu Powershell pri odstránení priečinka Prístup k ceste je odmietnutý

Príkaz PowerShell Remove-Item vyvolá chybové hlásenie Access to The Path Is Denied, ak sa pokúsite odstrániť priečinok, na ktorého odstránenie nemáte povolenie.

Dôvodom, prečo sa vám zobrazuje toto chybové hlásenie, je, že nemáte prístup k priečinku. Pred spustením príkazu Remove-Item spustite nasledujúce príkazy na udelenie prístupu lokálnym administrátorom k priečinku.

Táto oprava predpokladá, že konto, ktoré ste použili na prihlásenie, je členom lokálnej skupiny Administrators. Pred spustením príkazu nižšie v PowerShell ISE zmeňte cestu F:ITGFilesTextfiles na cestu k priečinku, ktorý sa pokúšate odstrániť. |_+_|

Po dokončení vyššie uvedeného skriptu znova spustite príkaz Remove-Item.

Ďalšie príklady vymazania priečinka alebo súboru v Powershell

Ďalšie príklady vymazania priečinka alebo súboru v Powershell

Táto posledná časť príručky obsahuje niekoľko príkladov použitia PowerShell na odstránenie súborov alebo priečinkov.

Ako odstrániť priečinok alebo súbor pomocou prostredia PowerShell, ak existuje

Keďže tento príklad má podmienku – ak priečinok alebo súbor existuje – prvá cesta príkazu skontroluje, či položka existuje.

Môžete použiť Test-Path príkaz na kontrolu, či existuje priečinok alebo súbor. Potom použite podmienený príkaz IF na odstránenie priečinka alebo súboru, ak existuje.

Oba príkazy môžeme kombinovať v bloku príkazov IF...

V tomto príklade chcem odstrániť priečinok s názvom ITGServer v ceste F:ITGFilesTextfiles – ak priečinok existuje.

Tu je príkaz…

|_+_|

V tomto príklade tento priečinok existuje, takže bol odstránený. Ak však príkaz vyskúšame so súborom, ktorý neexistuje, správu dostaneme v Inak bloku príkazu IF.

Ako odstrániť priečinok a jeho podpriečinky pomocou prostredia PowerShell

Ak chcete odstrániť priečinok a všetky podpriečinky, spustite príkaz Odstrániť položku príkaz s Rekurzia a sila parametre.

Tu je príklad…

|_+_|

Ako odstrániť priečinok alebo súbor starší ako x dní (alebo na základe dátumu) pomocou prostredia PowerShell

V tomto príklade, keďže chceme vymazať súbory alebo priečinky staršie ako x dní, prvým krokom je získať referenciu dní. To sa vykonáva pomocou príkazu Get-Date.

Keďže však chceme vymazať položky staršie ako x dní, musíme zadať x dní ako zápornú hodnotu. Ak chcete napríklad odstrániť všetky súbory alebo priečinky staršie ako 7 dní, získajte referenciu dní pomocou príkazu nižšie:

|_+_|

Potom použite Get-ChildItem príkaz na získanie LastWriteTime vlastnosť položky. The LastWriteTime vlastnosti zaznamenáva posledný dátum úpravy priečinka alebo súboru.

Navyše k LastWriteTime vlastnosť, príkaz Get-ChildItem vráti inú vlastnosť s názvom PSIsContainer . Vlastnosť PSIsContainer odlišuje súbor od priečinka.

Ak PSIsContainer je pravda, znamená to, že položka je priečinok. Na druhej strane, ak PSIsContainer je nepravda, znamená to, že položka je súbor.

Predtým, ako uvediem vlastnosť LastWriteTime, dovoľte mi najprv spustiť príkaz Get-ChildItem a filtrovať podľa vlastnosti PSIsContainer:

|_+_|

Tento príkaz vrátil jeden volaný objekt ITG pretože toto je jediný priečinok v ceste F:ITGFilesTextfiles.

Ak chcete zobraziť iba súbory v ceste, spustite príkaz nižšie:

|_+_|

Tentoraz, pretože som určil podľa $ _. PSIsConta zostupuje -ekv $ FALSE , PowerShell vráti všetky priečinky.

Teraz, keď ste pochopili, ako uvádzať priečinky alebo súbory v priečinku, predstavme si vlastnosť LastWriteTime. Ako som už spomenul, posledný dátum a čas úpravy položky sú zaznamenané vo vlastnosti LastWriteTime.

Tieto príkazy zahŕňajú vlastnosť LastWriteTime:

|_+_|

Prvý príkaz vráti všetky priečinky, ktoré boli naposledy upravené pred referenciou dňa uloženou v premennej $DaysRef. V tomto príklade je referencia dňa 7 dní.

Naopak, druhý príkaz vráti všetky súbory zmenené za posledných x dní – kde x dní sa v tomto príklade rovná 7.

Druhá a posledná fáza tohto príkladu, ktorá používa PowerShell na odstránenie priečinkov súborov starších ako x dní, je presmerovanie príkazu Where-Object na Remove-Item.

Skript nižšie dokončí úlohu vymazania súborov a priečinka...

|_+_| Ak žiadny súbor alebo priečinok nespĺňa kritériá LastWriteTime, žiadny nebude odstránený.

Ako používať PowerShell na odstránenie iba obsahu priečinka

V tomto príklade odstránim obsah priečinka F:ITGFilesfolder, ale nie samotný priečinok.

Ak chcete odstrániť iba obsah priečinka, ale ponechať priečinok, spustite príkaz Remove-Item, ako je uvedené v príklade nižšie:

|_+_|

Trik je pridať hviezdičku za poslednú lomku na koniec cesty k priečinku.

The Rekurzia Parameter vymaže všetky priečinky a podpriečinky v zadanej ceste. V tomto príklade F:ITGFilesfolder*

Ako použiť PowerShell na odstránenie priečinka a obsahu bez potvrdenia alebo výzvy

Trik, ako odstrániť priečinok a obsah bez toho, aby ste museli požiadať o potvrdenie, je pridať súbor sila a Potvrdiť: $false parametre k Odstrániť položku príkaz.

Ak spustím príkaz uvedený nižšie bez pridania Potvrdiť: $false Môžem potvrdiť, že chcem odstrániť priečinok a celý jeho obsah.

|_+_|

Ak však nechcem dostávať túto výzvu na potvrdenie, uvediem parameter Confirm:$false.

|_+_|

Príkaz by sa mal spustiť bez výzvy na potvrdenie akcie. Všimnite si tiež, že parameter, ktorý zastaví výzvu na potvrdenie, je Potvrdiť: $false .

Ak posledný príkaz stále vyžaduje potvrdenie, najskôr spustite príkaz Get-ChildItem príkaz. Potom prepojte výstup do príkazu Remove-Item, ako je znázornené nižšie:

|_+_|

Bohužiaľ, posledný príkaz neodstráni priečinok nadradeného priečinka. Ak chcete odstrániť nadradený priečinok a celý jeho obsah, pridajte parameter -filter do príkazu Get-ChildItem, ako je znázornené v tomto príkaze:

|_+_|

Ako použiť PowerShell na odstránenie priečinka alebo súboru z koša

Ak vymažete priečinok alebo súbor pomocou príkazu Odstrániť položku, odstráni sa natrvalo. Inými slovami, priečinok sa nepresunie do koša.

Bohužiaľ neexistuje žiadna rutina PowerShell na odstránenie priečinka alebo súboru do koša. Snažil som sa vytvoriť vlastnú funkciu pre túto úlohu. Našiel som však existujúcu funkciu vytvorenú a stackoverflow.com prispievateľ.

Aby som ju sprístupnil našim čitateľom, nahral som kópiu funkcie do S zóny. Na stiahnutie a používanie funkcie postupujte podľa nasledujúcich krokov:

  1. Kliknite na download Remove-ItemToRecycleBin.zip na stiahnutie funkcie
  2. Potom rozbaľte stiahnutý súbor zip. Keď súbor rozbalíte, vytvorí sa priečinok s názvom Remove-ItemToRecycleBin.
  3. Nakoniec skopírujte priečinok do priečinka modulu profilu Windows 10 PowerShell. Priečinok sa nachádza v ceste nižšie
|_+_| je názov vášho profilu Windows 10. Toto sa zvyčajne nachádza v C:Users. Ak však nie je v jednotke C, pozrite sa na jednotku D alebo E.

Po skopírovaní priečinka modulov vášho priečinka modulov ho môžete použiť ako ktorýkoľvek iný príkaz PowerShell. Na ilustráciu toho, ako to funguje, vymažem E: eports do koša.

Pred spustením príkazu je tu snímka môjho prázdneho koša.

Ako použiť PowerShell na odstránenie priečinka alebo súboru z koša

Teraz, ak chcete použiť PowerShell na odstránenie priečinka, E: eports to Kôš, spustím príkaz nižšie:

|_+_|

Po spustení vyššie uvedeného príkazu sa priečinok správ presunie do koša. Pozrite si snímku obrazovky nižšie…

Ako použiť PowerShell na odstránenie priečinka alebo súboru a vylúčenie iných priečinkov alebo súborov

Príkaz Remove-Item má príponu Vylúčiť parameter. Tento parameter sa používa na vylúčenie priečinka alebo súboru, ktorý nechcete vymazať.

Tu je príklad. Chcem odstrániť všetky priečinky v ceste, F:ITGFilesTextfiles5. Nechcem však odstrániť priečinok 3.

Ako použiť PowerShell na odstránenie priečinka alebo súboru a vylúčenie iných priečinkov alebo súborov

Ako môžete vidieť na snímke obrazovky vyššie, priečinok obsahuje priečinky aj súbory.

Ak chcete odstrániť iba priečinky, musím najprv použiť príkaz Get-ChildItem na zoznam všetkých položiek v ceste. Potom prepojte výstup do objektu Where-Object a filtrujte podľa vlastnosti PSIsContainer.

|_+_|

Po spustení posledného príkazu sa odstránia všetky priečinky, ale nie priečinok 3. Tiež si všimnete, že súbory v F:ITGFilesTextfiles5 neboli odstránené.

Dôvod, prečo boli odstránené iba priečinky, je ten, že v Kde-Objekt blok, filtroval som podľa {$_.PSIsContainer -eq $TRUE}. Vlastnosť PSIsContainer určuje, že objekt je priečinok.

Odstrániť položku má tiež parameter s názvom Include. Tento parameter vykoná opačnú akciu ako parameter Exclude.

Rovnaký výsledok ako pri poslednom príkaze môžem dosiahnuť nahradením Vylúčiť za Zahrnúť. Na rozdiel od predchádzajúceho príkazu však teraz vypíšem priečinky, ktoré chcem vymazať.

Tu je vzorový príkaz, ktorý vymaže iba zložku1 z F:ITGFilesTextfiles5.

|_+_|

Po spustení predchádzajúceho príkazu si všimnete, že bol odstránený iba priečinok 1.

Ak chcete namiesto priečinkov odstrániť súbory, zmeňte $_.PSIsContainer -eq $TRUE na $_.PSIsContainer -eq $FALSE

Ako použiť PowerShell na odstránenie priečinka, aj keď nie je prázdny

Ak chcete odstrániť priečinok pomocou prostredia PowerShell – aj keď priečinok nie je prázdny – zahrňte do sila a Rekurzia parametre. Tu je príklad.

|_+_|

Ako používať PowerShell na odstránenie prázdnych priečinkov starších ako X dní

Ak chcete pomocou PowerShell odstrániť prázdne priečinky staršie ako x dní, postupujte podľa nasledujúcich krokov…

V tomto príklade chcem odstrániť priečinky staršie ako 90 dní z môjho profilu Windows 10, C:UsersVictorA.

  1. Použite Get-ChildItems na zobrazenie iba priečinkov v zadanej ceste:
|_+_|

Príkaz zobrazí zoznam všetkých priečinkov v zadanej ceste. Ak si pamätáte, v predchádzajúcich príkazoch v tejto príručke sme použili na vrátenie priečinkov Kde-Objekt filtrovať podľa PSIsContainer nehnuteľnosť. Rozhodol som sa však dosiahnuť rovnaký výsledok pomocou Adresár parametrom Get-ChildItem .

  1. Potom prepojte výsledok príkazu Get-ChildItem do Where-Object. V rámci príkazu Where-Object pridajte filter, ktorý vráti iba prázdne priečinky. Tu je príkaz…
|_+_|
  1. Teraz musíme pridať cestu, ktorá vráti priečinky v predchádzajúcom zozname staršie ako 90 dní. To zahŕňa dva príkazy.

V prvom príkaze použijem Get-Date na určenie dátumu pre časové obdobie. V príklade spred 90 dní. Pre uľahčenie uložím výsledok do premennej s názvom $DaysRef.

|_+_|

Potom v druhom príkaze zaradím ďalší filter do časti Where-Object posledného príkazu.

|_+_|

Tu je výsledok posledného príkazu...

Ako používať PowerShell na odstránenie prázdnych priečinkov starších ako X dní

Ako vidíte, posledný príkaz teraz vráti iba dva prázdne priečinky. Tento príkaz som spustil 4. augusta 2021. Ako môžete vidieť, LastWriteTime z dvoch priečinkov je 16.06.2021 16:29.

Pre čitateľov z USA je tento dátum 16. august 2021 (16. 6. 2021)

To znamená, že posledná úprava týchto dvoch priečinkov je viac ako 90 dní od spustenia príkazu.

  1. Nakoniec, ak chcete odstrániť tieto prázdne priečinky staršie ako 90 dní, použite posledný príkaz na príkaz Remove-Item PowerShell.
|_+_|

Ako používať PowerShell na odstránenie priečinka profilu používateľa

Ak chcete odstrániť priečinok používateľského profilu pomocou príkazov v tejto časti, MUSÍTE otvorte PowerShell ako správca . V opačnom prípade sa môže zobraziť chybové hlásenie o odmietnutí prístupu

Prvým krokom, ako použiť PowerShell na odstránenie priečinka profilu používateľa, je určiť cestu k priečinku používateľa. PowerShell má premennú prostredia, ktorá vracia cestu do inštalačného adresára systému Windows.

Premenná je…

|_+_|

Tento príkaz vráti cestu ako C:WINDOWS. Medzitým sa priečinok Používatelia (ktorý obsahuje všetky priečinky používateľského profilu) nachádza v koreňovom adresári jednotky, kde je nainštalovaný systém Windows.

V mojom príklade sa priečinok Používatelia nachádza na jednotke C:WINDOWS.

verzia nastavení Radeon a verzia ovládača sa nezhodujú

Ak však chcete vrátiť C: z C:WINDOWS, použite metódu rozdelenia, ako je uvedené v príkaze nižšie.

|_+_|

Príkaz vráti C: a WINDOWS. Ďalším krokom je vrátenie C: – toto je prvá položka v poli.

Ako používať PowerShell na odstránenie priečinka profilu používateľa

Ak chcete získať prístup k tejto položke, pridajte [0] do posledného príkazu, ako je znázornené nižšie.

|_+_|

Teraz máme C:

Ako používať PowerShell na odstránenie priečinka profilu používateľa

Už som spomenul, že všetky používateľské profily sa nachádzajú v priečinku Používatelia. Z posledného príkazu pridám Users do návratu C:Users

|_+_|

Teraz máme úplnú cestu k priečinku Používatelia.

V ďalšom príkaze použijem Get-ChildItem na vypísanie všetkých priečinkov profilu používateľa v priečinku Users. Aby som sa však vyhol chybám, najprv uložím posledný príkaz do premennej.

|_+_|

Teraz môžem použiť Get-ChildItem na vrátenie všetkých priečinkov profilu používateľa v priečinku Users. Tu je príkaz:

|_+_|

A výsledok v PowerShell...

Ako používať PowerShell na odstránenie priečinka profilu používateľa

Posledným bitom bude presmerovanie posledného príkazu na Remove-Item. Pomocou parametra Filter však musíte odstrániť iba priečinok profilu používateľa, ktorého sa chcete zbaviť.

V tomto príklade chcem odstrániť priečinok používateľského profilu s názvom victo a všetky jeho podpriečinky

Tu je posledný príkaz, ktorý používa PowerShell na odstránenie priečinka profilu používateľa:

|_+_|

Po spustení tohto príkazu teraz, ak spustíte príkaz uvedený nižšie, odstránený profil už nebude uvedený.

|_+_|

Ako používať PowerShell na odstránenie priečinka z údajov aplikácie

PowerShell má dve premenné prostredia pre priečinok AppData prihláseného používateľa.

|_+_|

Premenná prostredia, ktorú sa rozhodnete použiť, závisí od umiestnenia priečinka, ktorý chcete odstrániť. Ak si však nie ste istí umiestnením priečinka, ktorý chcete odstrániť, môžete vyhľadať obe umiestnenia.

Aby som to dosiahol, uložím obe premenné prostredia do premennej s názvom $ appdatafolders…

|_+_|

Potom použijem slučku ForEach na kontrolu oboch umiestnení. Tu je kód, ktorý robí túto prácu…

|_+_| Zahrnul som parameter WhatIf, takže PowerShell neodstráni priečinok. Namiesto toho PowerShell zobrazí akciu, ktorú mal vykonať, ak parameter WhatIf nebol zahrnutý.

Tu je výsledok príkazu v PowerShell. Obrázok na pravej strane snímky obrazovky je priečinok v priečinku AppData.

Ako používať PowerShell na odstránenie priečinka z údajov aplikácie

Ako používať PowerShell na odstránenie skrytého priečinka

Príkaz Get-ChildItem má parameter s názvom Hidden. Ak chcete zobraziť zoznam skrytých priečinkov v určenom priečinku, zadajte parameter Skryté.

Na mojej snímke obrazovky nižšie mám 3 priečinky (nie sú alebo sú skryté).

Aby som ukázal, ako používať PowerShell na odstránenie skrytých priečinkov, skryjem Textfiles3. Teraz je priečinok skrytý.

Ako používať PowerShell na odstránenie skrytého priečinka

Ak chcete zobraziť skrytý priečinok, spustím príkaz nižšie…

|_+_|

Ako sa očakávalo, príkaz uvádza iba skrytý priečinok.

Ak chcete odstrániť skrytý priečinok pomocou PowerShell, prenesiem teraz posledný príkaz do príkazu Remove-Item.

|_+_|

Aby som potvrdil, že priečinok bol odstránený, povolil som atribút zobraziť skryté položky v Prieskumníkovi súborov.

Ako používať PowerShell na odstránenie skrytého priečinka

Ako používať PowerShell na odstránenie súborov, ale zachovať štruktúru priečinkov

Môžu nastať prípady, keď budete chcieť vymazať všetky súbory v priečinku vrátane jeho podpriečinkov, ale zachovať štruktúru priečinkov.

Aby ste to dosiahli, musíte spustiť príkaz Get-ChildItem a zadať parameter File. Keď použijete parameter Súbor, Get-ChildItem zobrazí iba súbory v zadanom priečinku.

Aby som demonštroval, ako to funguje, vytvoril som štruktúru priečinkov zobrazenú na obrázku nižšie:

Ako používať PowerShell na odstránenie súborov, ale zachovať štruktúru priečinkov

Ako je vidieť na snímke obrazovky, priečinok1 má dva podpriečinky, priečinok2 a priečinok3. Okrem toho priečinok 2 a priečinok 3 obsahuje nejaké súbory.

Ak chcete použiť Get-ChildItem na zobrazenie iba súborov v ceste F:ITGFilesfolder1, spustím príkaz nižšie:

|_+_|

Príkaz zobrazí iba súbory v dvoch cestách, F:ITGFilespriečinok1priečinok2 a adresár: F:ITGFilespriečinok1priečinok3

Nakoniec, ak chcete odstrániť súbory, ale zachovať štruktúru priečinkov, presuňte posledný príkaz na Remove-Item…

|_+_|

Príkaz vymaže všetky súbory, ale ponechá štruktúru priečinkov nedotknutú!

Ako používať PowerShell na odstránenie priečinka kľúča databázy Registry

Príkaz na vypísanie a odstránenie priečinka kľúča databázy Registry je rovnaký príkaz, ktorý sa používa na odstránenie bežných priečinkov.

Ak ste túto príručku čítali od začiatku, doteraz sme použili dva príkazy:

Get-ChildItem : používa sa na zoznam položiek v zadanej ceste
Odstrániť položku : používa sa na odstránenie súborov/priečinkov uvedených v Get-ChildItem

Jediný rozdiel je však v tom, ako pristupujete k priečinkom kľúčov databázy Registry.

Existuje niekoľko spôsobov, ako naformátovať kľúč databázy Registry na použitie v príkazoch Get-ChildItem a Remove-Item. V tomto príklade však použijem metódu nižšie:

|_+_|

V tomto príklade chcem získať prístup k priečinku kľúča databázy Registry, HKEY_CURRENT_USERControl PanelDesktop. Ako môžete vidieť vo formáte príkazu vyššie, na tento účel som pridal slovo register, za ktorým nasledujú dve dvojbodky::

Ak sa chcete dozvedieť viac o tom, ako PowerShell funguje s registrom Windows, prečítajte si našu príručku – Ako používať PowerShell na čítanie hodnoty databázy Registry .

Presunutím príkladu na ďalší krok, ak chcete zobraziť zoznam položiek vo vyššie uvedenom priečinku kľúčov databázy Registry, spustite príkaz nižšie:

|_+_|

Príkaz zobrazí všetky priečinky podkľúčov v zadanom priečinku kľúča databázy Registry.

Ak chcem odstrániť určený priečinok, najskôr spustím Get-ChildItem. Potom prenesiem výstup do Select-Object

|_+_|

Vyššie uvedený príkaz zobrazí úplnú cestu ku všetkým podkľúčom v mojom pôvodnom priečinku kľúča databázy Registry:

Ako používať PowerShell na odstránenie priečinka kľúča databázy Registry

Potom na odstránenie podkľúčov prenesiem posledný príkaz do Odstrániť položku. Ak však chcete odstrániť konkrétny priečinok podkľúčov, najprv prenesiem posledný príkaz do Where-Object a vyfiltrujem podľa názvu podkľúča, ktorý chcem odstrániť:

|_+_|

Posledný príkaz teraz vráti iba zadanú cestu priečinka podkľúča databázy Registry.

Nakoniec, ak chcete odstrániť tento podkľúč priečinka pomocou prostredia PowerShell, presuňte posledný príkaz do príkazu Remove-Item. Predtým však musíte upraviť kľúč databázy Registry a preniesť ho do Get-Item.

Aby som to uľahčil, uložím posledný príkaz do premennej

|_+_|

Potom ho naformátujte pre príkaz Get-Item

|_+_|

Nakoniec prepojte naformátovanú kľúčovú cestu do Get-Item…

|_+_|

Teraz môžeme odstrániť hodnotu prepojením posledného príkazu na Remove-Item (zahrnul som parameter whatif, pretože tento kľúč NECHCEM vymazať)

|_+_|

A tu je výsledok…

Ako používať PowerShell na odstránenie priečinka kľúča databázy Registry

Ako používať PowerShell na odstránenie názvu priečinka ako

V priebehu ďalších príkladov v tejto príručke som ukázal, ako použiť PowerShell na odstránenie názvu priečinka pomocou filtra Páči sa mi to. Ako už bolo uvedené v predchádzajúcich príkladoch, tento filter možno použiť aj v príkaze Get-ChildItem alebo v príkaze Where-Object.

Napríklad, ak chcete odstrániť všetky súbory a priečinky s názvami ako súbor v ceste F:ITGFiles, môžem použiť príkaz nižšie:

|_+_| Aby filter fungoval, možno budete musieť použiť zástupný znak. V tomto príklade používam zástupný znak hviezdičky.

Rovnaký výsledok môžem dosiahnuť presmerovaním Get-ChildItem na Where-Object. Potom vykonajte filtrovanie v časti Where-Object.

|_+_|

Príkaz vráti rovnaký výsledok ako posledný príkaz!

Ako používať PowerShell na odstránenie názvu priečinka ako

Rovnako ako v iných príkladoch v tejto príručke, ak chcete priečinok odstrániť, presuňte výstup ktoréhokoľvek z dvoch príkazov do Odstrániť položku.

Ako používať PowerShell na odstránenie priečinkov väčších ako špecifikovaná veľkosť

Ak chcete pomocou prostredia PowerShell odstrániť priečinky väčšie ako zadaná veľkosť, musíte najskôr vypočítať veľkosti priečinkov v zadanej ceste.

Musíte však uviesť úplnú cestu k podpriečinkom v zadanej ceste k priečinku. Ak chcete zobraziť úplnú cestu ku všetkým podpriečinkom v ceste k priečinku, spustite príkaz podobný tomu nižšie:

|_+_|

Príkaz vypíše úplné cesty ku všetkým podpriečinkom v ceste k priečinku F:ITGFiles

Pomocou Hĺbka parameter s hodnotou 0 namiesto Rekurzia zaisťuje, že sa vrátia iba podpriečinky prvej úrovne. Ako používať PowerShell na odstránenie sieťového zdieľaného priečinka

Teraz, keď mám úplnú cestu k podpriečinku, použijem tieto informácie na výpočet veľkosti každého podpriečinku. Aby som však mal úplnú cestu k podpriečinkom (vyžaduje sa to neskôr odstrániť) a veľkosť, potrebujem vytvoriť vlastný skript.

Tu je celý skript:

|_+_|

A tu je výsledok príkazu v PowerShell ISE.

Ako môžete vidieť na snímke obrazovky, skript vracia iba jeden súbor, ktorý spĺňa kritériá veľkosti (10 MB).

Je zrejmé, že máme posledný krok na dokončenie úlohy - odstrániť súbor. Ak chcete odstrániť súbor, ktorý spĺňa požiadavku na veľkosť, upravil som príkaz IF, ako je uvedené v tomto skripte…

|_+_|

Takže tu je posledný skript, ktorý odstráni priečinky väčšie ako zadaná hodnota

|_+_| Ak chcete použiť skript, zmeňte cestu F:ITGFiles v riadku Get-ChildItem – 1. Zmeňte tiež veľkosť priečinka, ktorý chcete odstrániť – z 10 (v MB) na požadovanú veľkosť.

Ako používať PowerShell na odstránenie sieťového zdieľaného priečinka

Proces používania prostredia PowerShell na odstránenie sieťových priečinkov sa nelíši od odstránenia miestnych priečinkov. Jediný rozdiel je v tom, ako určíte sieťový priečinok.

Okrem spôsobu, akým špecifikujete sieťový priečinok, musíte mať aj správne povolenia. Konkrétne musíte mať povolenie na zmenu zdieľania.

Okrem toho musíte mať povolenie na úpravu NTFS zabezpečenia.

Po splnení týchto požiadaviek na povolenia môžete pristupovať k sieťovému priečinku pomocou príkazu Get-ChildItem. Potom, ak chcete priečinok odstrániť, prepojte výstup Get-ChildItem na Remove-Item.

Aby som ukázal, ako použiť PowerShell na odstránenie sieťového priečinka, použijem zdieľaný priečinok s názvom TestShare. Priečinok sa nachádza na mojom Windows 11 testovacie PC s názvom ITGWIN11BETA.

Na zobrazenie zoznamu obsahu zdieľaného sieťového priečinka použijem príkaz Get-ChildItem, ako je uvedené nižšie…

|_+_|

Rovnako ako lokálny priečinok, príkaz zobrazí zoznam všetkých priečinkov a podpriečinkov v zdieľanom sieťovom priečinku.

Ako používať PowerShell na odstránenie priečinka alebo súboru počnúc

Od tohto bodu môžete posledný príkaz presmerovať priamo do položky Remove-Item. Prípadne použijete nejaký filter predtým, ako ho nasmerujete na Remove-Item.

Napríklad, ak chcete odstrániť konkrétny priečinok, môžete použiť Filter parameter v Get-ChildItem. Prípadne môžete presmerovať Get-ChildItem do Where-Object a použiť Filter parameter v Where-Object.

Nakoniec, ak chcete odstrániť položku v sieťovom zdieľanom priečinku, presuňte výsledok do Odstrániť položku.

Ako používať PowerShell na odstránenie priečinka alebo súboru počnúc

Ak chcete odstrániť priečinky alebo súbory začínajúce konkrétnym názvom, môžete použiť Filter parameter v Get-ChildItem cmdlet na zoznam súborov. Potom zadajte výsledok do položky Remove-Item.

Prípadne môžete použiť Odstrániť () Metóda v Get-ChildItem.

Na ilustráciu tohto príkladu odstránim všetky súbory a priečinky začínajúce písmenom f na snímke obrazovky nižšie.

Ako som už spomenul, prvým krokom je použitie cmdlet Get-ChildItem s parametrom Filter. Tu je vzorový príkaz:

|_+_| Ďalšou možnosťou by mohlo byť presmerovanie Get-ChildItem do Where-Object a vykonanie filtrovania v Where-Object .

Príkaz vypíše všetky súbory začínajúce na f. Pozrite si snímku obrazovky nižšie:

Ako používať PowerShell na odstránenie súboru alebo súboru a potom napísanie správy do súboru denníka

Posledným krokom k vymazaniu všetkých priečinkov a súborov počínajúc f je výstup výstupu z

|_+_|

Ako používať PowerShell na odstránenie priečinka SoftwareDistribution

Ako už možno viete, systém Windows ukladá stiahnuté aktualizácie do priečinka SoftwareDistribution. V ideálnom prípade nemusíte tento priečinok odstraňovať.

Ak je však databáza Windows Update poškodená, jedným zo spôsobov, ako to opraviť, je odstrániť súbor Distribúcia softvéru priečinok. Predtým, ako to urobíte, musíte najskôr zastaviť službu Windows Update.

Ak chcete zastaviť službu Windows Update, spustite PowerShell ako správca. Potom spustite príkaz nižšie:

|_+_| Ak službu Windows Update nezastavíte, NEBUDETE môcť odstrániť Distribúcia softvéru priečinok

Ďalej, ak chcete použiť PowerShell na odstránenie priečinka SoftwareDistribution, spustite príkazy nižšie:

|_+_|

Nakoniec, ak chcete znova vytvoriť priečinok SoftwareDistribution, reštartujte službu Windows Update

|_+_|

Ako používať PowerShell na odstránenie súboru alebo priečinka po jeho skomprimovaní

Ak chcete komprimovať súbor alebo priečinok, použite príkaz Compress-Archive, ako je uvedené v príklade nižšie:

|_+_| Zmeňte LiteralPath na zdrojovú cestu k súboru alebo priečinku, ktorý chcete skomprimovať. Tiež zmeňte DestinationPath na cestu, do ktorej chcete uložiť komprimovaný súbor.

Po skomprimovaní súboru ho odstráňte pomocou príkazu nižšie...

|_+_|

Ako používať PowerShell na odstránenie súboru alebo súboru a potom napísanie správy do súboru denníka

Ak chcete použiť PowerShell na odstránenie súboru alebo priečinka a potom nahlásiť akcie do súboru denníka, musíte najprv definovať názvy súborov denníka.

V tomto príklade chcem mať dva protokolové súbory, jeden na protokolovanie úspechu a druhý na protokolovanie chýb.

Zvyčajne rád vytváram svoje protokolové súbory na základe dátumu. Pre tento príklad najskôr vytvorím dátumovú pečiatku a uložím ju do premennej:

|_+_|

Potom vytvorím dva protokolové súbory na základe dátumovej pečiatky…

|_+_|

Chýba jeden kúsok – cesta k adresáru na uloženie súborov denníka. Ak chcete pridať tento bit, uložím cestu do premennej…

|_+_|

Potom pridajte cestu k súborom denníka vyššie…

|_+_|

Posledné dva príkazy vytvárajú dva protokolové súbory. Podrobnosti nájdete na snímke obrazovky nižšie…

Teraz, keď som vytvoril naše protokolové súbory, teraz vytvorím skript PowerShell, ktorý odstráni súbory a priečinky v zadanej ceste. Potom zapíšte správy do súborov denníka.

V tomto príklade chcem odstrániť súbory v priečinku WindowsTemp. Prvým krokom je uloženie cesty k tomuto priečinku do premennej…

|_+_|

Potom použijem Get-ChildItem na zobrazenie obsahu priečinka a výstup prenesiem do Remove-Item.

Aby som však mohol zachytiť chyby, musím celý príkaz uzavrieť do Try, Catch.

Tu je celý scenár…

|_+_| Ak chcete skript použiť, skopírujte ho do PowerShell ISE . Potom zmeňte premennú $Path na cestu k priečinku, ktorý chcete odstrániť. Tiež zmeňte $LogPath na cestu k priečinku, do ktorého chcete uložiť svoje protokolové súbory.

To je všetko – náš komplexný sprievodca používaním PowerShell na odstraňovanie súborov alebo priečinkov! Dúfam, že vám návod pomohol.

Ak vám to pomohlo, zahlasujte Áno to Bol tento príspevok užitočný? nižšie. Prípadne sa môžete podeliť o podrobnú spätnú väzbu prostredníctvom formulára ZANECHAŤ ODPOVEĎ na konci tejto stránky.

Nakoniec, ďalšie príručky PowerShell s príkladmi nájdete na našej stránke s návodmi na prostredie Windows PowerShell. Užitočné môžu byť aj naše BEZPLATNÉ školiace príručky PowerShell.