Kako izbrisati mape ali datoteke s programom PowerShell

18. avgust 2021 10262 Pogledi Kako izbrisati mape ali datoteke s programom PowerShell

Ali želite izbrisati datoteke in mape s PowerShellom, pa ne veste kako? Ta članek vam bo dal navodila po korakih, kako uporabljati PowerShell za brisanje mape, datoteke ali vseh map in datotek na določeni poti.





Ta objava v spletnem dnevniku vas nauči različnih načinov brisanja map in datotek s pomočjo PowerShell. Če se to sliši zanimivo, nadaljujte z branjem!



Vodnik se začne z razlago dveh načinov uporabe PowerShell za brisanje map in datotek. Nato se boste v drugem razdelku naučili, kako odpraviti pogoste napake, povezane z brisanjem datotek in map s PowerShell.

Končno, vodnik vsebuje več kot 20 primerov.



Brskajte po temah objav



2 načina za brisanje mape ali datoteke s PowerShell

PowerShell ponuja dva načina za brisanje elementov. Mapo ali datoteko lahko izbrišete z metodo brisanja PowerShell.

Drugič, lahko uporabite Remove-Item za brisanje elementov v PowerShell. V naslednjih dveh pododdelkih tega razdelka se boste naučili uporabljati te metode.



1. način: uporabite Powershell Izbriši() Metoda za brisanje mape ali datoteke

Če želite, da PowerShell izbriše mapo, potrebujete ukazni ukaz Get-ChidItem. Get-ChildItem Cmdlet vrne elemente in podrejene elemente na določeni lokaciji.



Če želite prikazati vse datoteke in mape na poti E: poroča , zaženite spodnji ukaz:

|_+_|

Tukaj je rezultat v PowerShell ...

Kako uporabljati Powershell Delete()

Ta ukaz ima imenovano metodo Izbriši . Lahko uporabite Izbriši Metoda za brisanje map in datotek.

Če si želite ogledati razpoložljive metode v zgornjem ukazu, povejte ukaz v ukazni ukaz Get-Member.

|_+_|

Ukaz je vrnil dve vrsti lastnosti. eno , System.IO.DirectoryInfo (glej prvo sliko spodaj). dve , System.IO.FileInfo . Prvi se nanaša na mape na poti, drugi pa na datoteke.

Pozorno si oglejte dve sliki. Upoštevajte, da ima vsak od njih metodo, imenovano Izbriši . Lahko uporabite Izbriši Metoda v PowerShell za brisanje mape ali datoteke.

V naslednjem pododdelku bom pokazal, kako uporabljati Izbriši Metoda.

Kako uporabiti Izbriši () Metoda v Powershell za brisanje mape ali datoteke

Sintaksa Izbriši Metoda je:

|_+_|

Predmet je mapa s podrobnostmi o datoteki, ki jih vrne ukaz Get-ChidItem. poleg tega Izbriši je metoda, ki ji običajno sledi operator ().

Za lažje razumevanje zgornjega sintaksnega ukaza je tukaj izvirni ukaz Get-ChildItem:

|_+_|

in rezultat…

Kako uporabljati Powershell Delete()

Glede na to, kar sem doslej pojasnil, bi teoretično lahko uporabili PowerShell Delete Method za brisanje mape, imenovane poročila, tako da zaženete spodnji ukaz:

|_+_|

Vendar zadnji ukaz vrne sporočilo o napaki Imenik ni prazen.

Za rešitev te težave potrebujem ukaz, ki vrne vse datoteke in mape ter podmape na poti. Nato moram rezultat prenesti v zanko aForEach.

Tukaj je spremenjen ukaz:

|_+_|

Tukaj je ukaz v PowerShell. Vse datoteke so bile izbrisane z navedene poti.

Zadnji ukaz izbriše datoteke v navedeni mapi in njene podmape. Vendar pa ne izbriše map.

Če želite izbrisati mape, zaženite spodnji ukaz:

|_+_|

Da bi to potrdili E: poroča je zdaj prazen, bom znova zagnal ukaz Get-ChildItem.

|_+_|

Ne vrne ničesar!

Preden preidem na naslednji razdelek, naj razložim, kako je ta ukaz izbrisal vse datoteke in podmape.

|_+_|

Get-ChildItem ima dva klicana parametra Vključi in Rekurzija . V ukazu sem uporabil -Vključi *.* da poveš PowerShellu, naj vključi vsako datoteko v rezultat.

Rekurzija , po drugi strani pove Get-ChildItem, naj vrne vse mape in podmape.

V drugem delu ukaza sem Get-ChildItem prestavil v stavek ForEach. ForEach zanke skozi vse predmete, ki jih vrne Get-ChildItem, in uporabi Izbriši Metoda za njihovo brisanje.

Kot sem že omenil, ko sem predstavil ta razdelek, ima PowerShell imenovan cmdlet Odstrani-predmet posebej. Ta ukaz PowerShell lahko uporabite tudi za brisanje mape ali datoteke.

V naslednjem razdelku je opisano, kako uporabljati Odstrani-predmet . Po mojih izkušnjah z uporabo Odstrani-predmet je bolje kot uporabljati Izbriši() Metoda.

2. način: uporabite Powershell Odstrani-predmet Ukaz za brisanje mape ali datoteke

Če želite izbrisati datoteko ali mapo z Odstrani-predmet še vedno morate uporabiti ukaz PowerShell, Get-ChildItem. Nato prenesite rezultat na Odstrani-predmet .

Lahko tečeš Odstrani-predmet brez Get-ChildItem . Vendar pa po mojih izkušnjah v večini okoliščin najbolje deluje, če element navedemo Get-ChildItem . Nato napeljite izhod na Odstrani-predmet .

V svojem prvem primeru v tem razdelku želim uporabiti PowerShell za brisanje mape z imenom ITGServer2. Oglejte si spodnji posnetek zaslona.

2. način: uporabite ukaz Powershell Remove-Item za brisanje mape ali datoteke

Tukaj je ukaz PowerShell, ki bo izbrisal mapo ...

|_+_|

Po zagonu zgornjega ukaza mape ni več!

2. način: uporabite ukaz Powershell Remove-Item za brisanje mape ali datoteke

V mojem drugem primeru želim izbrisati mape in podmape v E: eports. Spodnji ukaz bo opravil svoje delo ...

|_+_|

Po zagonu zadnjega ukaza so vse mape v navedeni mapi izginile!

2. način: uporabite ukaz Powershell Remove-Item za brisanje mape ali datoteke

Kako popraviti pogoste napake z brisanjem mape ali datoteke Powershell

Kako popraviti pogoste napake z brisanjem mape ali datoteke Powershell

Ko zaženete ukaz Remove-Item PowerShell za brisanje mape ali datoteke, lahko vrne nekaj napak. Ta razdelek pokriva nekatere od teh napak in kako jih odpraviti.

Menim, da je bolje razpravljati o rešitvah za te pogoste napake, preden se poglobimo v nekaj resničnih primerov sistemskega administratorja, kako uporabljati PowerShell za brisanje map ali datotek.

Kako popraviti napako Powershell Brisanje mape ali datoteke Dostop je zavrnjen

Če zaženete Remove-Item za brisanje datoteke ali mape in prejmete sporočilo o napaki Access Denied, poskusite naslednje:

  1. Spremenite lastnika datoteke ali mape – uporabite spodnje kode, da spremenite lastnika datoteke ali mape v lokalnega skrbnika

Če želite zagnati ta ukaz, odprite PowerShell kot skrbnik, sicer zadnji ukaz ne bo uspel.

|_+_| Spremenite pot do mape F:ITGFilesTextfiles na celotno pot vaše datoteke ali mape

Ko spremenite lastnika v lokalnega skrbnika, poskusite znova zagnati brisanje datoteke ali mape s PowerShell. Če ne deluje, poskusite te popravke.

  1. Dodajte Sila parameter za Remove-Item
  2. Namesto tega poskusite z metodo Delete(). Če ne veste, kako uporabljati metodo PowerShell Delete(), glejte Kako uporabljati metodo Delete() v Powershell za brisanje mape ali datoteke (povezava se odpre na drugem zavihku brskalnika) v tem priročniku.

Kako popraviti mapo za brisanje Powershell ni mogoče odstraniti, ker ni prazna Napaka

Če prejmete ni mogoče odstraniti, ker ni prazna napaka, ko zaženete ukaz:

|_+_|

Poskusite uporabiti Get-ChildItem s parametrom Recurse. Nato ga napeljite na Remove-Item z Sila in Rekurzija parametrov.

Tukaj je vzorec ukaza:

|_+_|

Lahko pa zaženete Get-ChildItem in določite zvezdice za zadnjo poševnico na poti. S tem izbrišete vso vsebino mape.

Na primer, če zaženem ukaz ...

|_+_|

… in prejemanje ni mogoče odstraniti, ker ni prazen, da odpravim težavo, bom najprej zagnal spodnji ukaz:

|_+_|

Zadnji ukaz izbriše samo elemente v E:poročila. Končno, da izbrišem mapo (ki je zdaj prazna), bom zagnal spodnji ukaz ...

|_+_|

Kako popraviti mapo za brisanje Powershell, ki jo uporablja drug proces

Kako popraviti mapo za brisanje Powershell

Če prejmete, da Remove-Item vrne sporočilo o napaki, ker ga uporablja drug proces, morate vključiti parameter Force.

Tukaj je izvirnik, ki je vrnil sporočilo o napaki ...

|_+_|

Če želite odpraviti to težavo, zaženite spodnji ukaz za datoteko:

|_+_|

Zadnji ukaz je uspešno izbrisal datoteko ...

Kako popraviti predolgo napako pri brisanja mape ali mape datoteke ali imena datoteke Powershell

Zdi se, da je to znana omejitev pri PowerShell.

Vendar pa lahko za odpravo te težave uporabite tebi ukaz cmd. Nato prenesite rezultat v ukaz Remove-Item.

Tukaj je primer…

|_+_| Ukaz dir je cmd ekvivalent Get-ChildItem PowerShell.

Kako popraviti napako Powershell Delete Folder Dostop do poti je zavrnjen

Ukaz PowerShell Remove-Item prikaže sporočilo o napaki Dostop do poti je zavrnjen, če poskušate izbrisati mapo, za katero nimate dovoljenja za brisanje.

Razlog za to sporočilo o napaki je, da nimate dostopa do mape. Preden zaženete ukaz Remove-Item, zaženite naslednje ukaze, da lokalnim skrbnikom omogočite dostop do mape.

Ta popravek predvideva, da je račun, s katerim ste se prijavili, član lokalne skupine skrbnikov. Preden zaženete spodnji ukaz v PowerShell ISE, spremenite pot F:ITGFilesTextfiles v pot mape, ki jo poskušate izbrisati. |_+_|

Ko končate z izvajanjem zgornjega skripta, znova zaženite ukaz Remove-Item.

Več primerov brisanja mape ali datoteke Powershell

Več primerov brisanja mape ali datoteke Powershell

Ta zadnji razdelek vodnika zajema več primerov, kako uporabljati PowerShell za brisanje datotek ali map.

Kako izbrisati mapo ali datoteko s PowerShell, če obstaja

Ker ima ta primer pogoj – če mapa ali datoteka obstaja – prva pot ukaza preveri, ali element obstaja.

Lahko uporabite Testna pot ukaz za preverjanje, ali mapa ali datoteka obstaja. Nato uporabite pogojni stavek IF, da odstranite mapo ali datoteko, če obstaja.

Oba ukaza lahko kombiniramo v bloku stavkov IF ...

V tem primeru želim izbrisati mapo z imenom ITGServer na poti F:ITGFilesTextfiles – če mapa obstaja.

Tukaj je ukaz …

|_+_|

V tem primeru ta mapa obstaja, zato je bila izbrisana. Če pa poskusimo ukaz z datoteko, ki ne obstaja, bomo prejeli sporočilo v Drugače blok stavka IF.

Kako izbrisati mapo in njene podmape s PowerShell

Če želite izbrisati mapo in vse podmape, zaženite datoteko Odstrani-predmet ukaz z Rekurzija in Sila parametrov.

Tukaj je primer…

|_+_|

Kako izbrisati mapo ali datoteko, starejšo od x dni (ali na podlagi datuma) s PowerShellom

V tem primeru, ker želimo izbrisati datoteke ali mape, starejše od x dni, je prvi korak pridobiti referenco dni. To naredimo z ukazom Get-Date.

Ker pa želimo izbrisati elemente, starejše od x dni, moramo kot negativno vrednost podati x dni. Če želite na primer izbrisati vse datoteke ali mape, starejše od 7 dni, pridobite referenco dni s spodnjim ukazom:

|_+_|

Nato uporabite Get-ChildItem ukaz za pridobitev LastWriteTime lastnost predmeta. The LastWriteTime lastnost beleži zadnji datum, ko je bila mapa ali datoteka spremenjena.

Poleg LastWriteTime lastnost, ukaz Get-ChildItem vrne drugo imenovano lastnost PSIsContainer . Lastnost PSIsContainer razlikuje datoteko od mape.

Če PSIsContainer je res, pomeni, da je predmet mapa. Po drugi strani pa, če PSIsContainer je napačna, pomeni, da je element datoteka.

Preden predstavim lastnost LastWriteTime, naj najprej zaženem ukaz Get-ChildItem in filtriram z lastnostjo PSIsContainer:

|_+_|

Ta ukaz je vrnil en sam predmet z imenom ITG ker je to edina mapa na poti F:ITGFilesTextfiles.

Če želite prikazati samo datoteke na poti, zaženite spodnji ukaz:

|_+_|

Tokrat, ker sem določil po $ _. PSIsConta spušča -eq $FALSE , PowerShell vrne vse ne-mape.

Zdaj, ko razumete, kako navesti mape ali datoteke v mapi, predstavimo lastnost LastWriteTime. Kot sem že omenil, sta zadnji datum in čas, ko je bil element spremenjen, zabeležena v lastnosti LastWriteTime.

Ti ukazi vključujejo lastnost LastWriteTime:

|_+_|

Prvi ukaz vrne vse mape, ki so bile nazadnje spremenjene pred sklicem dneva, shranjenim v spremenljivki $DaysRef. V tem primeru je referenca dneva 7 dni.

Nasprotno, drugi ukaz vrne vse datoteke, spremenjene zadnjih x dni – kjer je x dni v tem primeru enako 7.

Druga in zadnja faza tega primera, ki uporablja PowerShell za brisanje map z datotekami, starejšimi od x dni, je prenos ukaza Where-Object v Remove-Item.

Spodnji skript dokonča nalogo brisanja datotek in mape ...

|_+_| Če nobena datoteka ali mapa ne ustreza kriterijem LastWriteTime, nobena ne bo izbrisana.

Kako uporabljati PowerShell za brisanje samo vsebine mape

V tem primeru bom izbrisal vsebino mape F:ITGFiles, ne pa same mape.

Če želite izbrisati samo vsebino mape, vendar obdržati mapo, zaženite ukaz Remove-Item, kot je prikazano v spodnjem primeru:

|_+_|

Trik je v tem, da za zadnjo poševnico na koncu poti mape dodate zvezdico.

The Rekurzija parameter izbriše vse mape in podmape na navedeni poti. V tem primeru F:ITGFilesfolder*

Kako uporabljati PowerShell za brisanje mape in vsebine brez potrditve ali poziva

Trik za brisanje mape in vsebine, ne da bi vas prosili za potrditev, je, da dodate Sila in Potrdi: $false parametri za Odstrani-predmet ukaz.

Če zaženem spodnji ukaz, ne da bi dodal Potrdi: $false parameter, bom morda potrdil, da želim izbrisati mapo in vso njeno vsebino.

|_+_|

Če pa ne želim prejemati tega potrditvenega poziva, bom vključil parameter Confirm:$false.

|_+_|

Ukaz bi se moral zagnati, ne da bi zahteval potrditev dejanja. Upoštevajte tudi, da je parameter, ki ustavi poziv za potrditev Potrdi: $false .

Če zadnji ukaz še vedno zahteva potrditev, najprej zaženite Get-ChildItem ukaz. Nato prenesite izhod v ukaz Remove-Item, kot je prikazano spodaj:

|_+_|

Žal zadnji ukaz ne izbriše mape nadrejene mape. Če želite izbrisati nadrejeno mapo in vso njeno vsebino, dodajte parameter -filter ukazu Get-ChildItem, kot je prikazano v tem ukazu:

|_+_|

Kako uporabljati PowerShell za brisanje mape ali datoteke v koš

Če izbrišete mapo ali datoteko z ukazom Remove-Item, se trajno izbriše. Z drugimi besedami, mapa ni premaknjena v koš.

Avast pravi, da imam neželene datoteke

Na žalost ni ukaza PowerShell za brisanje mape ali datoteke v koš. Poskušal sem ustvariti funkcijo po meri za to nalogo. Vendar sem našel obstoječo funkcijo, ki jo je ustvaril a stackoverflow.com sodelavec.

Da bi bila na voljo našim bralcem, sem naložil kopijo funkcije v S Zone. Za prenos in uporabo funkcije sledite spodnjim korakom:

  1. Kliknite Prenesi Remove-ItemToRecycleBin.zip, da prenesete funkcijo
  2. Nato razpakirajte preneseno datoteko zip. Ko razpakirate datoteko, bo ustvarila mapo z imenom Remove-ItemToRecycleBin.
  3. Na koncu kopirajte mapo v mapo modula profila Windows 10 PowerShell. Mapa se nahaja na spodnji poti
|_+_| je ime vašega profila v sistemu Windows 10. To se običajno nahaja v C:Users. Če pa ni v pogonu C, si oglejte pogon D ali E.

Ko kopirate mapo modulov v mapo modula, jo lahko uporabite kot kateri koli drug ukaz PowerShell. Za ponazoritev, kako deluje, bom E:poročila izbrisal v koš.

Preden zaženem ukaz, je tukaj posnetek zaslona mojega praznega koša.

Kako uporabljati PowerShell za brisanje mape ali datoteke v koš

Zdaj, če želite uporabiti PowerShell za brisanje mape, E: poroča v koš, bom zagnal spodnji ukaz:

|_+_|

Po zagonu zgornjega ukaza bo mapa poročil premaknjena v koš. Oglejte si spodnji posnetek zaslona…

Kako uporabljati PowerShell za brisanje mape ali datoteke in izključitev drugih map ali datotek

Ukaz Remove-Item ima Izključi parameter. Ta parameter se uporablja za izključitev mape ali datoteke, ki je ne želite izbrisati.

Tukaj je primer. Želim izbrisati vse mape na poti, F:ITGFilesTextfiles5. Vendar pa ne želim izbrisati mape3.

Kako uporabljati PowerShell za brisanje mape ali datoteke in izključitev drugih map ali datotek

Kot lahko vidite na zgornjem posnetku zaslona, ​​​​mapa vsebuje tako mape kot datoteke.

Če želite izbrisati samo mape, moram najprej uporabiti ukaz Get-ChildItem za seznam vseh elementov na poti. Nato prenesite izhod v objekt Where-Object in filtrirajte po lastnosti PSIsContainer.

|_+_|

Po zagonu zadnjega ukaza se izbrišejo vse mape, ne pa mapa3. Prav tako opazite, da datoteke v F:ITGFilesTextfiles5 niso bile izbrisane.

Razlog, zakaj so bile izbrisane samo mape, je v tem, da so znotraj Kam-predmet blok, sem filtriral po {$_.PSIsContainer -eq $TRUE}. Lastnost PSIsContainer določa, da je predmet mapa.

Če nadaljujemo, ima Remove-Item tudi parameter, imenovan Vključi. Ta parameter izvede nasprotno dejanje kot parameter Exclude.

Enak rezultat kot zadnji ukaz lahko dosežem tako, da Izključi zamenjam z Vključi. Vendar, za razliko od prejšnjega ukaza, bom zdaj navedel mape, ki jih želim izbrisati.

Tukaj je vzorčni ukaz, ki izbriše samo mapo1 iz F:ITGFilesTextfiles5.

|_+_|

Po zagonu prejšnjega ukaza boste opazili, da je bila izbrisana samo mapa1.

Če želite izbrisati datoteke namesto map, spremenite $_.PSIsContainer -eq $TRUE v $_.PSIsContainer -eq $FALSE

Kako uporabljati PowerShell za brisanje mape, tudi če ni prazna

Če želite izbrisati mapo s PowerShell – tudi če mapa ni prazna – vključite Sila in Rekurzija parametrov. Tukaj je primer.

|_+_|

Kako uporabljati PowerShell za brisanje praznih map, starejših od X dni

Sledite spodnjim korakom, da uporabite PowerShell za brisanje praznih map, starejših od x dni ...

V tem primeru želim izbrisati mape, starejše od 90 dni, iz svojega profila Windows 10, C:UsersVictorA.

  1. Uporabite Get-ChildItems za seznam samo map na navedeni poti:
|_+_|

Ukaz izpiše vse mape na navedeni poti. Če se spomnite, smo v prejšnjih ukazih v tem priročniku za vračanje map uporabljali Kam-predmet filtrirati po PSIsContainer lastnine. Vendar se odločim doseči enak rezultat z uporabo Imenik parameter za Get-ChildItem .

  1. Nato prenesite rezultat ukaza Get-ChildItem v Where-Object. Znotraj ukaza Where-Object dodajte filter, ki vrne samo prazne mape. Tukaj je ukaz …
|_+_|
  1. Zdaj moramo dodati pot, ki vrne mape na prejšnjem seznamu, starejše od 90 dni. To vključuje dva ukaza.

V prvem ukazu bom uporabil Get-Date za določitev datuma za časovno obdobje. V primeru pred 90 dnevi. Da bi bilo lažje, bom rezultat shranil v spremenljivko, imenovano $DaysRef.

|_+_|

Nato bom v drugem ukazu vključil še en filter v del Where-Object zadnjega ukaza.

|_+_|

Tukaj je rezultat zadnjega ukaza ...

Kako uporabljati PowerShell za brisanje praznih map, starejših od X dni

Kot lahko vidite, zadnji ukaz zdaj vrne samo dve prazni mapi. Ta ukaz sem izvedel 4. avgusta 2021. Kot lahko vidite, je LastWriteTime obeh map je 16.6.2021 16:29.

Za bralce v ZDA je ta datum 16. avgust 2021 (16. 6. 2021)

To pomeni, da sta bili mapi zadnjič spremenjeni več kot 90 dni od trenutka, ko sem izvedel ukaz.

  1. Nazadnje, če želite izbrisati te prazne mape, starejše od 90 dni, prenesite zadnji ukaz v ukaz Remove-Item PowerShell.
|_+_|

Kako uporabljati PowerShell za brisanje mape uporabniškega profila

Če želite izbrisati mapo uporabniškega profila z ukazi v tem razdelku, MORATE odprite PowerShell kot skrbnik . V nasprotnem primeru lahko prejmete sporočilo o napaki o zavrnjenem dostopu

Prvi korak pri uporabi PowerShell za brisanje mape s profilom uporabnika je določitev poti do uporabniške mape. PowerShell ima spremenljivko okolja, ki vrne pot do namestitvenega imenika sistema Windows.

Spremenljivka je…

|_+_|

Ta ukaz vrne pot, kot je C:WINDOWS. Medtem se mapa Users (ki vsebuje vse mape uporabniških profilov) nahaja v korenu pogona, kjer je nameščen Windows.

V mojem primeru se mapa Users nahaja na pogonu C:WINDOWS.

Če pa želite vrniti C: iz C:WINDOWS, uporabite metodo split, kot je prikazano v spodnjem ukazu.

|_+_|

Ukaz vrne C: in WINDOWS. Naslednji korak je vrniti C: – to je prvi element v matriki.

Kako uporabljati PowerShell za brisanje mape uporabniškega profila

Za dostop do tega elementa vključite ta [0] v zadnji ukaz, kot je prikazano spodaj.

|_+_|

Zdaj imamo C:

Kako uporabljati PowerShell za brisanje mape uporabniškega profila

Prej sem omenil, da se vsi uporabniški profili nahajajo v mapi Uporabniki. Od zadnjega ukaza bom dodal Users vrnjenemu C:Users

|_+_|

Zdaj imamo celotno pot do mape Uporabniki.

V naslednjem ukazu bom uporabil Get-ChildItem za seznam vseh map uporabniškega profila v mapi Uporabniki. Da pa se izognem napakam, bom najprej zadnji ukaz shranil v spremenljivko.

|_+_|

Zdaj lahko uporabim Get-ChildItem za vrnitev vseh map uporabniškega profila v mapi Uporabniki. Tukaj je ukaz:

cf-auto-root.tar
|_+_|

In rezultat v PowerShell ...

Kako uporabljati PowerShell za brisanje mape uporabniškega profila

Zadnji bit bo prenos zadnjega ukaza v Remove-Item. Vendar pa morate uporabiti parameter Filter, da izbrišete samo mapo uporabniškega profila, ki se je želite znebiti.

V tem primeru želim izbrisati mapo uporabniškega profila z imenom victo in vse njene podmape

Tukaj je zadnji ukaz, ki uporablja PowerShell za brisanje mape uporabniškega profila:

|_+_|

Ko zaženete ta ukaz, zdaj, če zaženete spodnji ukaz, izbrisani profil ne bo več naveden.

|_+_|

Kako uporabljati PowerShell za brisanje mape iz Appdata

PowerShell ima dve spremenljivki okolja za mapo AppData prijavljenega uporabnika.

|_+_|

Spremenljivka okolja, za katero se odločite uporabiti, je odvisna od lokacije mape, ki jo želite izbrisati. Če pa niste prepričani o lokaciji mape, ki jo želite izbrisati, lahko poiščete obe lokaciji.

Da bi to dosegel, bom obe spremenljivki okolja shranil v spremenljivko, imenovano $appdatafolders…

|_+_|

Nato bom uporabil zanko ForEach za preverjanje obeh lokacij. Tukaj je koda, ki opravlja to nalogo ...

|_+_| Vključil sem parameter WhatIf, tako da PowerShell ne izbriše mape. Namesto tega bo PowerShell prikazal dejanje, ki bi ga moral izvesti, če parameter WhatIf ne bi bil vključen.

Tukaj je rezultat ukaza v PowerShell. Slika na desni strani posnetka zaslona je mapa v moji mapi AppData.

Kako uporabljati PowerShell za brisanje mape iz Appdata

Kako uporabljati PowerShell za brisanje skrite mape

Ukaz Get-ChildItem ima parameter, imenovan Hidden. Če želite prikazati skrite mape v določeni mapi, vključite parameter Skrito.

Na spodnjem posnetku zaslona imam 3 mape (niso ali so skrite).

Če želite pokazati, kako uporabljati PowerShell za brisanje skritih map, bom skril Textfiles3. Zdaj je mapa skrita.

Kako uporabljati PowerShell za brisanje skrite mape

Če želite prikazati skrito mapo, bom zagnal spodnji ukaz ...

|_+_|

Kot je bilo pričakovano, ukaz navaja samo skrito mapo.

Če želite izbrisati skrito mapo s PowerShell, bom zdaj zadnji ukaz prepeljal v ukaz Remove-Item.

|_+_|

Za potrditev, da je bila mapa izbrisana, sem v File Explorerju omogočil atribut show Hidden items.

Kako uporabljati PowerShell za brisanje skrite mape

Kako uporabljati PowerShell za brisanje datotek, vendar ohraniti strukturo map

Obstajajo primeri, ko boste morda želeli izbrisati vse datoteke v mapi, vključno z njenimi podmapami, vendar ohraniti strukturo map.

Če želite to doseči, morate zagnati ukaz Get-ChildItem in podati parameter File. Ko uporabite parameter File, Get-ChildItem navede samo datoteke v navedeni mapi.

Za prikaz, kako to deluje, sem ustvaril strukturo map, prikazano na spodnjem posnetku zaslona:

Kako uporabljati PowerShell za brisanje datotek, vendar ohraniti strukturo map

Kot je razvidno iz posnetka zaslona, ​​ima mapa1 dve podmapi, mapo2 in mapo3. Poleg tega imata folder2 in folder3 nekaj datotek.

Če želite uporabiti Get-ChildItem za prikaz samo datotek na poti, F:ITGFilesfolder1, bom zagnal spodnji ukaz:

|_+_|

Ukaz prikaže samo datoteke na dveh poteh, F:ITGFilesfolder1folder2 in Imenik: F:ITGFilesfolder1folder3

Nazadnje, če želite izbrisati datoteke, vendar obdržati strukturo map, zadnji ukaz prenesite v Remove-Item ...

|_+_|

Ukaz izbriše vse datoteke, vendar pusti strukturo map nedotaknjeno!

Kako uporabljati PowerShell za brisanje mape registrskega ključa

Ukaz za seznam in brisanje mape registrskega ključa je isti ukaz, ki se uporablja za brisanje običajnih map.

Če ste ta priročnik brali od začetka, smo do zdaj uporabili dva ukaza:

Get-ChildItem : uporablja se za seznam elementov na določeni poti
Odstrani-predmet : uporablja se za brisanje datotek/map, ki jih navaja Get-ChildItem

Edina razlika pa je, kako dostopate do map registrskih ključev.

Obstaja več načinov za formatiranje registrskega ključa za uporabo v ukazih Get-ChildItem in Remove-Item. Vendar pa bom za ta primer uporabil spodnjo metodo:

|_+_|

V tem primeru želim dostopati do mape registrskega ključa HKEY_CURRENT_USERControl PanelDesktop. Kot lahko vidite v zgornji obliki ukaza, sem za to dodal besedo register, ki ji sledita dve dvopičji::

Če želite izvedeti več o tem, kako PowerShell deluje z registrom Windows, preberite naš vodnik – Kako uporabljati PowerShell za branje vrednosti registra .

Če primer premaknete na naslednji korak, da navedete elemente v zgornji mapi registrskega ključa, zaženite spodnji ukaz:

|_+_|

Ukaz prikaže vse mape podključev v določeni mapi registrskega ključa.

Če želim izbrisati določeno mapo, bom najprej zagnal Get-ChildItem. Nato bom izhod usmeril v Select-Object

|_+_|

Zgornji ukaz prikaže celotno pot do vseh podključev v moji izvirni mapi registrskega ključa:

Kako uporabljati PowerShell za brisanje mape registrskega ključa

Potem, da izbrišem podključe, bom zadnji ukaz usmeril v Remove-Item. Če pa želite izbrisati določeno mapo podključa, bom zadnji ukaz najprej usmeril v Where-Object in filtriral po imenu podključa, ki ga želim izbrisati:

|_+_|

Zadnji ukaz zdaj vrne samo podano pot mape podključa registra.

Nazadnje, če želite izbrisati ta podključ mape s PowerShell, zadnji ukaz prenesite v Remove-Item. Pred tem pa morate spremeniti registrski ključ in ga usmeriti v Get-Item.

Da bo lažje, bom zadnji ukaz shranil v spremenljivko

|_+_|

Nato ga formatirajte za ukaz Get-Item

|_+_|

Na koncu potisnite oblikovano ključno pot do Get-Item ...

|_+_|

Zdaj lahko izbrišemo vrednost tako, da zadnji ukaz prenesemo v Remove-Item (vključil sem parameter whatif, ker NE želim izbrisati tega ključa)

|_+_|

In tukaj je rezultat…

Kako uporabljati PowerShell za brisanje mape registrskega ključa

Kako uporabljati PowerShell za brisanje imena mape Like

Med drugimi primeri v tem priročniku sem pokazal, kako uporabiti PowerShell za brisanje imena mape s filtrom Like. Kot je že prikazano v prejšnjih primerih, lahko ta filter uporabite v ukazu Get-ChildItem ali v ukazu Where-Object.

Na primer, če želite izbrisati vse datoteke in mape z imeni, kot je datoteka na poti F:ITGFiles, lahko uporabim spodnji ukaz:

|_+_| Da bo filter deloval, boste morda morali uporabiti nadomestni znak. V tem primeru uporabljam nadomestni znak zvezdice.

Enak rezultat lahko dosežem tako, da prenesem Get-ChildItem v Where-Object. Nato izvedite filtriranje v Where-Object.

|_+_|

Ukaz vrne enak rezultat kot zadnji ukaz!

Kako uporabljati PowerShell za brisanje imena mape Like

Kot pri drugih primerih v tem priročniku, če želite izbrisati mapo, prenesite izhod katerega koli od dveh ukazov v Remove-Item.

Kako uporabljati PowerShell za brisanje map, ki so večje od določene velikosti

Če želite s PowerShellom izbrisati mape, večje od določene velikosti, morate najprej izračunati velikosti map na navedeni poti.

Vendar morate v navedeni poti mape navesti celotno pot do podmap. Če želite prikazati celotno pot do vseh podmap na poti mape, zaženite ukaz, podoben spodnjemu:

|_+_|

Ukaz navaja celotne poti do vseh podmap na poti mape, F:ITGFiles

Uporabljati Globina namesto parametra z vrednostjo 0 Rekurzija zagotavlja, da se vrnejo samo podmape prve stopnje. Kako uporabljati PowerShell za brisanje omrežne mape v skupni rabi

Zdaj, ko imam celotno pot do podmape, bom te informacije uporabil za izračun velikosti vsake podmape. Vendar pa moram ustvariti skript po meri, da bi imel celotno pot do podmap (potrebno, da jo pozneje izbrišem) in velikost.

Tukaj je celoten scenarij:

|_+_|

In tukaj je rezultat ukaza v PowerShell ISE.

Kot lahko vidite na posnetku zaslona, ​​skript vrne samo eno datoteko, ki ustreza merilom velikosti (10 MB).

Očitno imamo še zadnji del za dokončanje naloge – izbrišite datoteko. Če želite izbrisati datoteko, ki ustreza zahtevi po velikosti, sem spremenil stavek IF, kot je prikazano v tem skriptu ...

|_+_|

Torej, tukaj je zadnji skript, ki izbriše mape, večje od določene vrednosti

|_+_| Če želite uporabiti skript, spremenite pot F:ITGFiles v Get-ChildItem – vrstica 1. Prav tako spremenite velikost mape, ki jo želite izbrisati – iz 10 (v MB) na želeno velikost.

Kako uporabljati PowerShell za brisanje omrežne mape v skupni rabi

Postopek uporabe PowerShell za brisanje omrežnih map se ne razlikuje od brisanja lokalnih map. Edina razlika je, kako določite omrežno mapo.

Poleg načina, kako določite omrežno mapo, morate imeti tudi ustrezna dovoljenja. Natančneje, morate imeti dovoljenje za spremembo skupne rabe.

Poleg tega morate imeti tudi varnostno dovoljenje Modify NTFS.

Ko so te zahteve za dovoljenja izpolnjene, lahko dostopate do omrežne mape z ukazom Get-ChildItem. Nato, če želite izbrisati mapo, prenesite izhod Get-ChildItem v Remove-Item.

Za prikaz, kako uporabljati PowerShell za brisanje omrežne mape, bom uporabil mapo v skupni rabi z imenom TestShare. Mapa se nahaja na mojem Windows 11 testni računalnik z imenom ITGWIN11BETA.

Za seznam vsebine omrežne mape v skupni rabi bom uporabil ukaz Get-ChildItem, kot je prikazano spodaj ...

|_+_|

Tako kot lokalna mapa, ukaz navaja vse mape in podmape v skupni omrežni mapi.

Kako uporabljati PowerShell za brisanje mape ali datoteke, ki se začne z

Od te točke lahko zadnji ukaz pošljete neposredno v Remove-Item. Druga možnost je, da uporabite nekaj filtra, preden ga prenesete v Remove-Item.

Na primer, če želite izbrisati določeno mapo, lahko uporabite Filter parameter v Get-ChildItem. Druga možnost je, da Get-ChildItem usmerite v Where-Object in uporabite Filter parameter v Where-Object.

Nazadnje, če želite izbrisati element v omrežni skupni mapi, prenesite rezultat v Remove-Item.

Kako uporabljati PowerShell za brisanje mape ali datoteke, ki se začne z

Če želite izbrisati mape ali datoteke, ki se začnejo z določenim imenom, lahko uporabite Filter parameter v ukaznem ukazu Get-ChildItem za seznam datotek. Nato ipe rezultat v Remove-Item.

Lahko pa uporabite tudi Izbriši() Metoda v Get-ChildItem.

Za ponazoritev tega primera bom izbrisal vse datoteke in mape, ki se začnejo s f na spodnjem posnetku zaslona.

Kot sem že omenil, je prvi korak uporaba ukaznega ukaza Get-ChildItem s parametrom Filter. Tukaj je vzorec ukaza:

|_+_| Druga možnost bi lahko bila, da Get-ChildItem pošljete v Where-Object in izvedete filtriranje v Where-Object.

Ukaz navaja vse datoteke, ki se začnejo s f. Oglejte si spodnji posnetek zaslona:

Kako uporabljati PowerShell za brisanje datoteke ali datoteke, nato napišite poročilo v datoteko dnevnika

Zadnji korak za brisanje vseh map in datotek, ki se začnejo s f, je cevovodni izhod

|_+_|

Kako uporabljati PowerShell za brisanje mape SoftwareDistribution

Kot morda že veste, Windows shranjuje prenesene posodobitve v mapo SoftwareDistribution. V idealnem primeru vam te mape ne bo treba izbrisati.

Če pa je zbirka podatkov Windows Update poškodovana, je eden od načinov, kako to popraviti, izbrisati SoftwareDistribution mapo. Preden to storite, morate najprej ustaviti Windows Update.

Če želite ustaviti storitev Windows Update, zaženite PowerShell kot skrbnik. Nato zaženite spodnji ukaz:

|_+_| Če ne ustavite storitve Windows Update, NE boste mogli izbrisati SoftwareDistribution mapo

Nato, če želite uporabiti PowerShell za brisanje mape SoftwareDistribution, zaženite spodnje ukaze:

|_+_|

Nazadnje, če želite znova ustvariti mapo SoftwareDistribution, znova zaženite storitev Windows Update

|_+_|

Kako uporabljati PowerShell za brisanje datoteke ali mape, potem ko jo stisnete

Za stiskanje datoteke ali mape uporabite ukaz Compress-Archive, kot je prikazano v spodnjem primeru:

|_+_| Spremenite LiteralPath v izvorno pot datoteke ali mape, ki jo želite stisniti. Prav tako spremenite DestinationPath na pot, na katero želite shraniti stisnjeno datoteko.

Ko ste datoteko stisnili, uporabite spodnji ukaz, da jo izbrišete ...

|_+_|

Kako uporabljati PowerShell za brisanje datoteke ali datoteke, nato napišite poročilo v datoteko dnevnika

Če želite uporabiti PowerShell za brisanje datoteke ali mape in nato poročati o dejanjih v dnevniški datoteki, morate najprej definirati imena dnevniških datotek.

V tem primeru želim imeti dve dnevniški datoteki, eno za beleženje uspeha in drugo za beleženje napak.

Običajno rad ustvarjam datoteke dnevnika na podlagi datuma. Za ta primer bom najprej ustvaril datumski žig in ga shranil v spremenljivko:

|_+_|

Nato bom ustvaril dve dnevniški datoteki na podlagi datumskega žiga ...

|_+_|

Manjka en del – pot imenika za shranjevanje dnevniških datotek. Če želite dodati ta bit, bom pot shranil v spremenljivko ...

|_+_|

Nato dodajte pot do zgornjih dnevniških datotek ...

|_+_|

Zadnja dva ukaza ustvarita dve datoteki dnevnika. Za podrobnosti si oglejte spodnji posnetek zaslona…

Zdaj, ko sem ustvaril naše datoteke dnevnika, bom zdaj ustvaril skript PowerShell, ki bo izbrisal datoteke in mape na določeni poti. Nato napišite poročila v datoteke dnevnika.

V tem primeru želim izbrisati datoteke v mapi WindowsTemp. Prvi korak je, da shranite pot do te mape v spremenljivko ...

|_+_|

Nato bom uporabil Get-ChildItem za seznam vsebine mape in posredoval izhod v Remove-Item.

Da pa lahko zajamem napake, moram celoten ukaz zapreti v Try, Catch.

Tukaj je celoten scenarij …

|_+_| Če želite uporabiti skript, ga kopirajte v PowerShell ISE. Nato spremenite spremenljivko $Path v pot do mape, ki jo želite izbrisati. Prav tako spremenite $LogPath v pot mape, v katero želite shraniti datoteke dnevnika.

To je to – naš izčrpen vodnik za uporabo PowerShell za brisanje datotek ali map! Upam, da vam je vodič pomagal.

Če se vam zdi v pomoč, vljudno glasujte da do Je bila ta objava v pomoč? spodaj. Lahko pa delite podrobne povratne informacije z obrazcem PUSTI ODGOVOR na koncu te strani.

Za več vodnikov za PowerShell s primeri obiščite našo stran z navodili za Windows PowerShell. Morda vam bodo v pomoč tudi naši BREZPLAČNI vodniki za usposabljanje PowerShell.