Mappák vagy fájlok törlése a PowerShell segítségével

2021. augusztus 18 10262 Nézetek Mappák vagy fájlok törlése a PowerShell segítségével

Fájlokat és mappákat szeretne törölni a PowerShell segítségével, de nem tudja, hogyan? Ez a cikk lépésről lépésre bemutatja, hogyan használhatja a PowerShellt egy mappát, fájlt vagy az összes mappát és fájlt egy megadott útvonalon.





Ez a blogbejegyzés különféle módokat tanít meg a mappák és fájlok PowerShell használatával történő törlésére. Ha ez érdekesnek tűnik, olvass tovább!



Az útmutató azzal kezdődik, hogy elmagyarázza a PowerShell alkalmazásának két módját mappák és fájlok törlésére. Ezután a második részben megtudhatja, hogyan javíthatja ki a fájlok és mappák PowerShell-lel való törlésével kapcsolatos gyakori hibákat.

Végül az útmutató több mint 20 példát tartalmaz.



Böngésszen a bejegyzések témái között



2 módszer a mappa vagy fájl törlésére a PowerShell segítségével

A PowerShell két módot kínál az elemek törlésére. A PowerShell-törlési módszerrel törölhet egy mappát vagy fájlt.

Másodszor, az Elem eltávolítása funkcióval törölheti az elemeket a PowerShellben. A szakasz következő 2 alszakaszában megtudhatja, hogyan kell ezeket a módszereket használni.



1. módszer: Powershell használata Töröl() Mappa vagy fájl törlésének módja

Ahhoz, hogy a PowerShell töröljön egy mappát, a Get-ChidItem parancsmag szükséges. Get-ChildItem A parancsmag visszaadja az elemeket és a gyermekelemeket egy megadott helyen.



Az elérési úton lévő összes fájl és mappa listázása E: jelentések , futtassa az alábbi parancsot:

|_+_|

Íme az eredmény a PowerShellben…

A Powershell Delete() használata

Ennek a parancsnak van egy Method nevűje Töröl . Használhatja a Töröl A mappák és fájlok törlésének módja.

A fenti parancsban elérhető metódusok megtekintéséhez írja be a parancsot a Get-Member parancsmagba.

|_+_|

A parancs kétféle tulajdonságot adott vissza. egy , System.IO.DirectoryInfo (lásd az első képet lent). kettő , System.IO.FileInfo . Az első az elérési út mappáira vonatkozik, míg a második a fájlokra vonatkozik.

Nézze meg alaposan a két képet. Figyeljük meg, hogy mindegyiknek van egy elnevezett módszere Töröl . Használhatja a Töröl Mappa vagy fájl törlésének módja a PowerShellben.

A következő alfejezetben megmutatom, hogyan kell használni Töröl Módszer.

Hogyan kell használni Töröl () Módszer a Powershellben egy mappa vagy fájl törlésére

A szintaxis a Töröl A módszer a következő:

|_+_|

Tárgy a Get-ChidItem parancsmag által visszaadott fájladatok mappája. Továbbá, Töröl a Method, amelyet általában a () operátor követ.

A fenti szintaxisparancs könnyebb megértése érdekében itt található az eredeti Get-ChildItem parancs:

|_+_|

és az eredmény…

A Powershell Delete() használata

Az eddig elmondottak alapján elméletileg a PowerShell törlési módszerrel törölheti a Reports nevű mappát az alábbi parancs futtatásával:

|_+_|

Az utolsó parancs azonban a A könyvtár nem üres hibaüzenetet adja vissza.

A probléma megoldásához olyan parancsra van szükségem, amely visszaadja az útvonal összes fájlját és mappáját, valamint almappáját. Ezután az eredményt aForEach ciklusba kell vezetnem.

Itt van a módosított parancs:

|_+_|

Itt van a parancs a PowerShellben. Az összes fájlt törölték a megadott elérési útról.

Az utolsó parancs törli a fájlokat a megadott mappában és annak almappáiban. A mappákat azonban nem törli.

A mappák törléséhez futtassa az alábbi parancsot:

|_+_|

Ennek megerősítésére E: jelentések most üres, újra futtatom a Get-ChildItem parancsot.

|_+_|

Nem ad vissza semmit!

Mielőtt továbblépnék a következő szakaszra, hadd magyarázzam el, hogy ez a parancs hogyan törölte az összes fájlt és almappát.

|_+_|

A Get-ChildItem két paraméterrel rendelkezik Tartalmazza és Ismétlés . A parancsban használtam - Tartalmazza *.* hogy a PowerShell minden fájlt belefoglaljon az eredménybe.

Ismétlés , másrészt utasítja a Get-ChildItem-et, hogy adja vissza az összes mappát és almappát.

A parancs második részében a Get-ChildItem elemet a ForEach utasításhoz fűztem. A ForEach végigfut a Get-ChildItem által visszaadott összes objektumon, és használja a Töröl Törlésük módja.

Amint azt már említettem, amikor bemutattam ezt a szakaszt, a PowerShell rendelkezik egy parancsmaggal Elem eltávolítása kimondottan. A PowerShell parancsmag segítségével mappákat vagy fájlokat is törölhet.

A következő rész a használat módját ismerteti Elem eltávolítása . Tapasztalataim szerint használva Elem eltávolítása jobb, mint használni Töröl() Módszer.

2. módszer: Powershell használata Elem eltávolítása Cmdlet mappa vagy fájl törléséhez

Fájl vagy mappa törléséhez a Elem eltávolítása továbbra is a PowerShell Get-ChildItem parancsmagot kell használnia. Ezután vezesse be az eredményt Elem eltávolítása .

Futhatsz Elem eltávolítása nélkül Get-ChildItem . Tapasztalataim szerint azonban a legtöbb esetben az a legjobb, ha felsoroljuk a tételt Get-ChildItem . Ezután vezesse a kimenetet ide Elem eltávolítása .

Ebben a szakaszban az első példámban a PowerShell segítségével szeretném törölni az ITGServer2 nevű mappát. Lásd az alábbi képernyőképet.

2. módszer: Használja a Powershell Remove-Item parancsmagot egy mappa vagy fájl törléséhez

Itt van a PowerShell parancs, amely törli a mappát…

|_+_|

A fenti parancs futtatása után a mappa eltűnt!

2. módszer: Használja a Powershell Remove-Item parancsmagot egy mappa vagy fájl törléséhez

A második példámban törölni szeretném az E: eports mappában található mappákat és almappákat. Az alábbi parancs elvégzi a munkát…

|_+_|

Az utolsó parancs futtatása után a megadott mappában lévő összes mappa eltűnt!

2. módszer: Használja a Powershell Remove-Item parancsmagot egy mappa vagy fájl törléséhez

A Powershell mappa vagy fájl törlésével kapcsolatos gyakori hibák javítása

A Powershell mappa vagy fájl törlésével kapcsolatos gyakori hibák javítása

Amikor az Elem eltávolítása PowerShell parancsot futtatja egy mappa vagy fájl törléséhez, az hibákat adhat vissza. Ez a rész néhány ilyen hibát és azok kijavítását ismerteti.

Úgy érzem, jobb, ha megvitatásra kerül ezekre a gyakori hibákra vonatkozó megoldások, mielőtt belemerülnénk néhány valós rendszergazdai példába a PowerShell használatával mappák vagy fájlok törlésére.

vlc blu ray aacs dekódolás

A Powershell mappa törlése vagy fájlhozzáférés megtagadva hiba elhárítása

Ha az Elem eltávolítása parancsot futtatja egy fájl vagy mappa törléséhez, és a Hozzáférés megtagadva hibaüzenet jelenik meg, próbálkozzon a következővel:

  1. Fájl vagy mappa tulajdonosának módosítása – az alábbi kódokkal módosíthatja a fájl vagy mappa tulajdonosát a helyi rendszergazdára

A parancs futtatásához nyissa meg a PowerShellt rendszergazdaként, különben az utolsó parancs meghiúsul.

|_+_| Módosítsa az F:ITGFilesTextfiles mappa elérési útját a fájl vagy mappa teljes elérési útjára

Miután megváltoztatta a tulajdonost a helyi rendszergazdára, próbálja meg újra futtatni a fájl vagy mappa törlését a PowerShell segítségével. Ha nem működik, próbálja ki ezeket a javításokat.

  1. Add hozzá a Kényszerítés paramétert az Eltávolítás elemre
  2. Próbálja inkább a Delete() módszert. Ha nem tudja, hogyan kell használni a PowerShell Delete() módszert, olvassa el a Delete() metódus használata Powershellben mappa vagy fájl törléséhez (a hivatkozás egy másik böngészőlapon nyílik meg) című részt ebben az útmutatóban.

A Powershell törlési mappa javítása nem távolítható el, mert nem üres

Ha a kapott üzenet nem távolítható el, mert nem üres hibaüzenet a parancs futtatásakor:

|_+_|

Próbálkozzon a Get-ChildItem használatával a Recurse paraméterrel. Ezután vezesse az Eltávolítás-elemhez a gombbal Kényszerítés és Ismétlés paramétereket.

Íme egy példa parancs:

|_+_|

Alternatív megoldásként futtathatja a Get-ChildItem parancsot, és megadhat csillagokat az útvonal utolsó perjele mögött. Ezzel törli a mappa összes tartalmát.

Például ha lefuttatom a parancsot…

|_+_|

…és a Nem távolítható el, mert nem üres üzenetet kap, a probléma megoldásához először futtatom az alábbi parancsot:

|_+_|

Az utolsó parancs csak az E: eports elemeit törli. Végül a mappa törléséhez (amely most üres), lefuttatom az alábbi parancsot…

|_+_|

Egy másik folyamathiba által használt Powershell törlési mappa javítása

A Powershell törlési mappa javítása

Ha a Remove-Item hibaüzenetet kapja, mert azt egy másik folyamat használja, akkor a Force paramétert kell megadnia.

Itt van az eredeti, amely visszaadta a hibaüzenetet…

|_+_|

A probléma megoldásához futtassa az alábbi parancsot egy fájlhoz:

|_+_|

Az utolsó parancs sikeresen törölte a fájlt…

A Powershell törlési mappa vagy fájlmappa vagy túl hosszú fájlnév hiba elhárítása

Úgy tűnik, hogy ez a PowerShell ismert korlátozása.

A probléma megoldásához azonban használhatja a neked cmd parancsot. Ezután írja be az eredményt az Elem eltávolítása parancsba.

Íme egy példa…

|_+_| A dir parancs a PowerShell Get-ChildItem parancsának cmd megfelelője.

A Powershell Delete mappa elérési útjához való hozzáférés megtagadva hiba javítása

A PowerShell Remove-Item parancs hibaüzenetet küld az elérési úthoz megtagadva, ha olyan mappát próbál meg törölni, amelynek nincs jogosultsága a törlésre.

Ennek a hibaüzenetnek az az oka, hogy nem fér hozzá a mappához. Az Elem eltávolítása parancs futtatása előtt futtassa a következő parancsokat, hogy hozzáférést biztosítson a helyi rendszergazdáknak a mappához.

Ez a javítás feltételezi, hogy a bejelentkezéshez használt fiók a helyi rendszergazdák csoport tagja. Mielőtt futtatná az alábbi parancsot a PowerShell ISE-ben, módosítsa az F:ITGFilesTextfiles elérési utat a törölni kívánt mappa elérési útjára. |_+_|

Miután befejezte a fenti szkript futtatását, futtassa újra az Elem eltávolítása parancsot.

További példák a Powershell mappa vagy fájl törlésére

További példák a Powershell mappa vagy fájl törlésére

Az útmutató utolsó része több példát is tartalmaz arra vonatkozóan, hogyan használhatja a PowerShellt fájlokat vagy mappákat.

Hogyan lehet törölni egy mappát vagy fájlt a PowerShell segítségével, ha létezik

Mivel ennek a példának van egy feltétele – ha a mappa vagy fájl létezik –, a parancs első elérési útja ellenőrzi, hogy az elem létezik-e.

Használhatja a Teszt-útvonal paranccsal ellenőrizheti, hogy létezik-e mappa vagy fájl. Ezután az IF feltételes utasítással távolítsa el a mappát vagy fájlt, ha létezik.

Mindkét parancsot kombinálhatjuk az IF utasításblokkban…

Ebben a példában törölni akarok egy ITGServer nevű mappát az F:ITGFilesTextfiles útvonalon – ha a mappa létezik.

Itt a parancs…

|_+_|

Ebben a példában ez a mappa létezik, ezért törölték. Ha azonban nem létező fájllal próbáljuk ki a parancsot, akkor az üzenetet a Más az IF utasítás blokkja.

Hogyan lehet törölni egy mappát és almappáit a PowerShell segítségével

Egy mappa és az összes almappa törléséhez futtassa a Elem eltávolítása parancsot a Ismétlés és Kényszerítés paramétereket.

Íme egy példa…

|_+_|

Hogyan lehet törölni egy x napnál régebbi mappát vagy fájlt (vagy dátum alapján) a PowerShell segítségével

Ebben a példában, mivel x napnál régebbi fájlokat vagy mappákat szeretnénk törölni, az első lépés a napok hivatkozásának beszerzése. Ez a Get-Date paranccsal történik.

Mivel azonban x napnál régebbi elemeket szeretnénk törölni, negatív értékként x napot kell megadnunk. Például az összes 7 napnál régebbi fájl vagy mappa törléséhez szerezze be a napok hivatkozását az alábbi paranccsal:

|_+_|

Ezután használja a Get-ChildItem parancsot kap a LastWriteTime a tétel tulajdona. A LastWriteTime tulajdonság rögzíti a mappa vagy fájl legutóbbi módosításának dátumát.

Amellett, hogy a LastWriteTime tulajdonság, a Get-ChildItem parancs egy másik nevű tulajdonságot ad vissza PSIsContainer . A PSIsContainer tulajdonság megkülönbözteti a fájlt a mappától.

Ha PSIsContainer igaz, ez azt jelenti, hogy az elem egy mappa. Másrészt ha PSIsContainer hamis, ez azt jelenti, hogy az elem fájl.

Mielőtt bemutatnám a LastWriteTime tulajdonságot, először futtassam le a Get-ChildItem parancsot, és szűrjek a PSIsContainer tulajdonság alapján:

|_+_|

Ez a parancs egyetlen nevű objektumot adott vissza ITG mert ez az egyetlen mappa az F:ITGFilesTextfiles útvonalon.

Alternatív megoldásként, ha csak az elérési úton lévő fájlokat szeretné felsorolni, futtassa az alábbi parancsot:

|_+_|

Ezúttal azért, mert megadtam $ _. PSIsConta leereszkedik -eq $FALSE , a PowerShell minden nem mappát visszaad.

Most, hogy megértette, hogyan lehet mappákat vagy fájlokat listázni egy mappában, mutassuk be a LastWriteTime tulajdonságot. Ahogy korábban említettem, az elem utolsó módosításának dátuma és időpontja a LastWriteTime tulajdonságban rögzítve van.

Ezek a parancsok a LastWriteTime tulajdonságot tartalmazzák:

|_+_|

Az első parancs visszaadja az összes olyan mappát, amelyet utoljára módosítottak a $DaysRef változóban elmentett naphivatkozás előtt. Ebben a példában a nap referencia 7 nap.

Éppen ellenkezőleg, a második parancs az elmúlt x napon módosított összes fájlt visszaadja – ahol ebben a példában x nap 7.

Ennek a példának a második és utolsó szakasza, amely a PowerShellt használja az x napnál régebbi fájlok mappáinak törlésére, az, hogy a Where-Object parancsot az Elem eltávolítása parancsra kell átvezetni.

Az alábbi szkript befejezi a fájlok és mappák törlését…

|_+_| Ha egyetlen fájl vagy mappa sem felel meg a LastWriteTime kritériumoknak, egyik sem törlődik.

A PowerShell használata csak a mappa tartalmának törlésére

Ebben a példában az F:ITGFilesfolder tartalmát fogom törölni, magát a mappát nem.

Ha csak a mappa tartalmát szeretné törölni, de a mappát meg szeretné tartani, futtassa az Elem eltávolítása parancsot az alábbi példában látható módon:

|_+_|

A trükk az, hogy a mappa elérési útjának végére az utolsó perjel után csillagot adunk.

A Ismétlés paraméter törli az összes mappát és almappát a megadott útvonalon. Ebben a példában az F:ITGFilesfolder*

A PowerShell használata mappa és tartalom törlésére megerősítés vagy felszólítás nélkül

A mappa és a tartalom megerősítés nélküli törlésének trükkje az, hogy hozzáadja a Kényszerítés és Erősítse meg:$false paramétereket a Elem eltávolítása parancs.

Ha futtatom az alábbi parancsot anélkül, hogy hozzáadnám a Erősítse meg:$false paramétert, meg fogom erősíteni, hogy törölni akarom a mappát és annak teljes tartalmát.

|_+_|

Ha azonban nem szeretném megkapni ezt a megerősítést kérő üzenetet, akkor beleteszem a Confirm:$false paramétert.

|_+_|

A parancsnak a művelet megerősítésének kérése nélkül kell futnia. Azt is vegye figyelembe, hogy a megerősítést kérő paraméter leállítja a Erősítse meg:$false .

Ha az utolsó parancs továbbra is megerősítést kér, először futtassa a Get-ChildItem parancs. Ezután vezesse a kimenetet az Elem eltávolítása parancsba az alábbiak szerint:

|_+_|

Sajnos az utolsó parancs nem törli a szülőmappa mappáját. A szülőmappa és annak teljes tartalmának törléséhez adja hozzá a -filter paramétert a Get-ChildItem parancshoz az alábbi parancs szerint:

|_+_|

A PowerShell használata mappa vagy fájl törléséhez a lomtárból

Ha töröl egy mappát vagy fájlt az Elem eltávolítása paranccsal, akkor az véglegesen törlődik. Más szavakkal, a mappa nem kerül át a Lomtárba.

Sajnos nincs PowerShell-parancsmag, amely törölhet egy mappát vagy fájlt a Lomtárból. Egyéni függvényt próbáltam létrehozni ehhez a feladathoz. Találtam azonban egy létező függvényt, amelyet a stackoverflow.com hozzájáruló.

Hogy olvasóink számára is elérhető legyen, feltöltöttem a funkció egy példányát az S Zone-ba. A funkció letöltéséhez és használatához kövesse az alábbi lépéseket:

  1. A funkció letöltéséhez kattintson a Download Remove-ItemToRecycleBin.zip gombra
  2. Ezután csomagolja ki a letöltött zip fájlt. Amikor kicsomagolja a fájlt, létrejön egy Remove-ItemToRecycleBin nevű mappa.
  3. Végül másolja a mappát a Windows 10 PowerShell-profil modul mappájába. A mappa az alábbi útvonalon található
|_+_| a Windows 10-profil neve. Ez általában a C:Users mappában található. Ha azonban nincs a C meghajtóban, nézze meg a D vagy E meghajtót.

Miután átmásolta a modulmappát a modulmappába, használhatja azt, mint bármely más PowerShell-parancsot. A működés szemléltetésére törlöm az E: eports-t a Lomtárba.

Mielőtt azonban futtatnám a parancsot, itt van egy képernyőkép az üres Lomtáramról.

A PowerShell használata mappa vagy fájl törléséhez a lomtárból

Most, hogy a PowerShell segítségével törölje a mappát, az E: jelentések a Lomtárba, az alábbi parancsot futtatom:

|_+_|

A fenti parancs futtatása után a jelentések mappa a Lomtárba kerül. Lásd az alábbi képernyőképet…

A PowerShell használata mappa vagy fájlok törlésére és más mappák vagy fájlok kizárására

Az Elem eltávolítása parancsnak van egy Kizárás paraméter. Ezzel a paraméterrel kizárható egy olyan mappa vagy fájl, amelyet nem kíván törölni.

Íme egy példa. Törölni szeretném az F:ITGFilesTextfiles5 útvonal összes mappáját. A 3. mappát azonban nem szeretném törölni.

A PowerShell használata mappa vagy fájlok törlésére és más mappák vagy fájlok kizárására

Amint az a fenti képernyőképen látható, a mappa mappákat és fájlokat is tartalmaz.

Csak mappák törléséhez először a Get-ChildItem parancsot kell használnom az elérési út összes elemének listázásához. Ezután vezesse a kimenetet a Where-Objectbe, és szűrje a PSIsContainer tulajdonságot.

|_+_|

Az utolsó parancs futtatása után az összes mappa törlődik, de a folder3 nem. Azt is észreveszi, hogy az F:ITGFilesTextfiles5 fájlokat nem törölték.

Csak a mappák törlésének oka az, hogy a Hol-Object blokkot, a következővel szűrtem: {$_.PSIsContainer -eq $TRUE}. A PSIsContainer tulajdonság meghatározza, hogy az objektum egy mappa.

Továbblépve az Eltávolítás-elemnek van egy Belefoglalás nevű paramétere is. Ez a paraméter a Kizárás paraméterrel ellentétes műveletet hajt végre.

Ugyanazt az eredményt érhetem el, mint az utolsó paranccsal, ha az Exclude parancsot az Include-ra cserélem. Az előző paranccsal ellentétben azonban most felsorolom a törölni kívánt mappákat.

Íme egy példaparancs, amely csak a mappát1 törli az F:ITGFilesTextfiles5 mappából.

|_+_|

Az előző parancs futtatása után észre fogja venni, hogy csak a mappa1 törölve lett.

Ha mappák helyett fájlokat szeretne törölni, módosítsa a $_.PSIsContainer -eq $TRUE értékét $_.PSIsContainer -eq $FALSE értékre

Hogyan használjuk a PowerShellt egy mappa törléséhez, még akkor is, ha az nem üres

Ha törölni szeretne egy mappát a PowerShell segítségével – akkor is, ha a mappa nem üres – tartalmazza a Kényszerítés és Ismétlés paramétereket. Íme egy példa.

|_+_|

A PowerShell használata X napnál régebbi üres mappák törlésére

Kövesse az alábbi lépéseket, hogy a PowerShell segítségével törölje az x napnál régebbi üres mappákat…

Ebben a példában a 90 napnál régebbi mappákat szeretném törölni a Windows 10 profilomból (C:UsersVictorA).

  1. A Get-ChildItems használatával csak a megadott útvonalon lévő mappákat listázhatja ki:
|_+_|

A parancs listázza a megadott elérési út összes mappáját. Ha emlékszik, az útmutató korábbi parancsaiban a mappák visszaadásához használtuk Hol-Object alapján szűrni PSIsContainer ingatlan. Azonban úgy döntök, hogy ugyanazt az eredményt érem el a Könyvtár paramétere Get-ChildItem .

  1. Ezután írja be a Get-ChildItem parancs eredményét a Where-Object parancsra. A Where-Object parancson belül adjon hozzá egy szűrőt, amely csak az üres mappákat adja vissza. Itt a parancs…
|_+_|
  1. Most hozzá kell adnunk azt az elérési utat, amely az előző listában szereplő 90 napnál régebbi mappákat adja vissza. Ez két parancsot tartalmaz.

Az első parancsban a Get-Date segítségével határozom meg az időtartam dátumát. A példában 90 nappal ezelőtt. A könnyebbség kedvéért elmentem az eredményt egy $DaysRef nevű változóba.

|_+_|

Ezután a második parancsban egy másik szűrőt is beépítek az utolsó parancs Where-Object részébe.

|_+_|

Íme az utolsó parancs eredménye…

A PowerShell használata X napnál régebbi üres mappák törlésére

Mint látható, az utolsó parancs már csak két üres mappát ad vissza. Ezt a parancsot 2021. augusztus 4-én futtattam. Amint látja, a LastWriteTime a két mappa közül 2021.06.16. 16:29.

Az amerikai olvasók számára ez a dátum 2021. augusztus 16. (2021.06.16.)

Ez azt jelenti, hogy a két mappa legutóbbi módosítása több mint 90 nappal a parancs futtatása után történt.

  1. Végül a 90 napnál régebbi üres mappák törléséhez vezesse az utolsó parancsot az Elem eltávolítása PowerShell parancshoz.
|_+_|

A PowerShell használata a felhasználói profilmappa törléséhez

Ha törölni szeretné a felhasználói profil mappáját az ebben a szakaszban található parancsokkal, KÖTELEZŐ nyissa meg a PowerShellt rendszergazdaként . Ellenkező esetben hozzáférés megtagadva hibaüzenetet kaphat

A PowerShell használatának első lépése a felhasználó profilmappájának törléséhez a felhasználó mappájának elérési útjának meghatározása. A PowerShellnek van egy környezeti változója, amely visszaadja a Windows telepítési könyvtárának elérési útját.

A változó…

|_+_|

Ez a parancs egy olyan elérési utat ad vissza, mint a C:WINDOWS. Eközben a Felhasználók mappa (amely az összes felhasználói profil mappát tartalmazza) annak a meghajtónak a gyökerében található, amelyre a Windows telepítve van.

Példámban a Felhasználók mappa a C:WINDOWS meghajtón található.

A C: C:WINDOWS fájlból való visszaadásához használja a felosztási módszert az alábbi parancs szerint.

|_+_|

A parancs a C:-t és a WINDOWS-t adja vissza. A következő lépés a C: visszaadása – ez az első elem a tömbben.

A PowerShell használata a felhasználói profilmappa törléséhez

Az elem eléréséhez írja be ezt a [0]-t az utolsó parancsba, az alábbiak szerint.

|_+_|

Most van C:

A PowerShell használata a felhasználói profilmappa törléséhez

Korábban említettem, hogy minden felhasználói profil a Felhasználók mappában található. Az utolsó parancsból hozzáadom a Users-t a visszatérési C:Users-hez

|_+_|

Most megvan a Felhasználók mappa teljes elérési útja.

A következő parancsban a Get-ChildItem paranccsal kilistázom az összes felhasználói profil mappát a Users mappában. A hibák elkerülése érdekében azonban először elmentem az utolsó parancsot egy változóba.

|_+_|

Mostantól a Get-ChildItem segítségével visszaadhatom az összes felhasználói profil mappát a Users mappában. Íme a parancs:

|_+_|

És az eredmény a PowerShellben…

A PowerShell használata a felhasználói profilmappa törléséhez

Az utolsó bit az utolsó parancs átvezetése az Elem eltávolítása parancsra. A Filter paraméterrel azonban csak azt a Felhasználói profil mappát kell törölni, amelytől meg kíván szabadulni.

Ebben a példában törölni szeretném a victo nevű felhasználói profilmappát és annak összes almappáját

Íme az utolsó parancs, amely a PowerShellt használja a felhasználói profilmappa törléséhez:

|_+_|

A parancs futtatása után most, ha az alábbi parancsot futtatja, a törölt profil többé nem jelenik meg a listában.

|_+_|

A PowerShell használata mappa törléséhez az Appdata alkalmazásból

A PowerShellnek két környezeti változója van a bejelentkezett felhasználó AppData mappájához.

|_+_|

A használni kívánt környezeti változó a törölni kívánt mappa helyétől függ. Ha azonban nem biztos a törölni kívánt mappa helyében, mindkét helyen kereshet.

Ennek elérése érdekében mindkét környezeti változót egy $appdatafolders… nevű változóba mentem.

|_+_|

Ezután a ForEach ciklust fogom használni mindkét hely ellenőrzésére. Itt van a kód, amely ezt a feladatot végzi…

|_+_| Bevettem a WhatIf paramétert, így a PowerShell nem törli a mappát. Ehelyett a PowerShell megjeleníti azt a műveletet, amelyet végre kellett hajtania, ha a WhatIf paraméter nem szerepelt.

Íme a PowerShell parancsának eredménye. A képernyőkép jobb oldalán lévő kép az AppData mappámban lévő mappa.

A PowerShell használata mappa törléséhez az Appdata alkalmazásból

A PowerShell használata a rejtett mappa törléséhez

A Get-ChildItem parancsnak van egy Rejtett nevű paramétere. Ha egy megadott mappában szeretné felsorolni a rejtett mappákat, adja meg a Rejtett paramétert.

Az alábbi képernyőképemen 3 mappám van (nem vagy rejtve).

A PowerShell használatával a rejtett mappák törléséhez bemutatandó, elrejtem a Textfiles3-at. Most a mappa el van rejtve.

A PowerShell használata a rejtett mappa törléséhez

A rejtett mappa felsorolásához az alábbi parancsot futtatom…

|_+_|

Ahogy az várható volt, a parancs csak a rejtett mappát listázza ki.

A rejtett mappa PowerShell-lel való törléséhez az utolsó parancsot az Elem eltávolítása parancshoz vezetem.

|_+_|

A mappa törlésének megerősítésére engedélyeztem a Rejtett elemek attribútumot a Fájlkezelőben.

A PowerShell használata a rejtett mappa törléséhez

A PowerShell használata fájlok törlésére, de a mappaszerkezet megtartására

Előfordulhatnak olyan esetek, amikor érdemes törölni egy mappában lévő összes fájlt, beleértve az almappákat is, de meg kell őrizni a mappaszerkezetet.

Ennek eléréséhez futtassa a Get-ChildItem parancsot, és adja meg a File paramétert. Ha a Fájl paramétert használja, a Get-ChildItem csak a megadott mappában lévő fájlokat listázza ki.

Annak bemutatására, hogyan működik ez, létrehoztam egy mappastruktúrát, amely az alábbi képernyőképen látható:

A PowerShell használata fájlok törlésére, de a mappaszerkezet megtartására

Amint a képernyőképen látható, az 1-es mappának két almappája van, a folder2 és a folder3. Ezenkívül a 2. és a 3. mappa tartalmaz néhány fájlt.

Ha a Get-ChildItem használatával csak az F:ITGFilesfolder1 útvonalon lévő fájlokat szeretné megjeleníteni, akkor az alábbi parancsot futtatom:

|_+_|

A parancs csak a két útvonalon lévő fájlokat jeleníti meg: F:ITGFilesfolder1folder2 és Directory: F:ITGFilesfolder1folder3

Végül a fájlok törléséhez, de a mappaszerkezet megtartásához az utolsó parancsot az Elem eltávolítása…

|_+_|

A parancs törli az összes fájlt, de a mappastruktúrát érintetlenül hagyja!

A PowerShell használata a rendszerleíró kulcsmappa törléséhez

A rendszerleíró kulcsmappák listázására és törlésére vonatkozó parancs ugyanaz, mint a normál mappák törlésére.

Ha ezt az útmutatót a kezdetektől olvasta, eddig két parancsot használtunk:

Get-ChildItem : a megadott útvonalon lévő elemek felsorolására szolgál
Elem eltávolítása : a Get-ChildItem által felsorolt ​​fájlok/mappák törlésére szolgál

Az egyetlen különbség azonban az, hogy hogyan éri el a rendszerleíró kulcsmappákat.

Többféleképpen is formázható a rendszerleíró kulcs a Get-ChildItem és Remove-Item parancsokhoz. Ebben a példában azonban az alábbi módszert fogom használni:

|_+_|

Ebben a példában a rendszerleíró kulcs mappához szeretnék hozzáférni: HKEY_CURRENT_USERControl PanelDesktop. Amint a fenti parancsformátumban látható, ehhez hozzáadtam a registry szót, amelyet két kettőspont követett, ::

Ha többet szeretne megtudni arról, hogyan működik a PowerShell a Windows rendszerleíró adatbázisával, olvassa el útmutatónkat – A PowerShell használata a rendszerleíró adatbázis értékének olvasásához .

Ha áthelyezi a példát a következő lépésre, és a fenti rendszerleíró kulcsmappában lévő elemek listázásához futtassa az alábbi parancsot:

|_+_|

A parancs megjeleníti az összes alkulcs mappát a megadott beállításkulcs mappában.

Ha törölni akarok egy megadott mappát, először a Get-ChildItem parancsot fogom futtatni. Ezután a kimenetet a Select-Object-re vezetem

|_+_|

A fenti parancs megjeleníti az összes alkulcs teljes elérési útját az eredeti beállításkulcs-mappámban:

A PowerShell használata a rendszerleíró kulcsmappa törléséhez

Ezután az alkulcsok törléséhez az utolsó parancsot az Elem eltávolítása parancsra küldöm. Egy adott alkulcsmappa törléséhez azonban először az utolsó parancsot a Where-Object parancsra vezetem, és szűröm a törölni kívánt alkulcs neve alapján:

|_+_|

Az utolsó parancs most csak a megadott beállításkulcs-mappa elérési útját adja vissza.

Végül a mappa alkulcsának a PowerShell segítségével történő törléséhez az utolsó parancsot az Elem eltávolítása parancsra kell beírni. Előtte azonban módosítania kell a rendszerleíró kulcsot, és át kell vezetnie a Get-Item fájlba.

Az egyszerűség kedvéért az utolsó parancsot elmentem egy változóba

|_+_|

Ezután formázza a Get-Item parancsra

|_+_|

Végül vezesse be a formázott kulcsútvonalat a Get-Item…

|_+_|

Most törölhetjük az értéket, ha az utolsó parancsot a Remove-Item parancsra vezetjük (bevettem a whatif paramétert, mert NEM szeretném törölni ezt a kulcsot)

|_+_|

És itt az eredmény…

A PowerShell használata a rendszerleíró kulcsmappa törléséhez

A PowerShell használata a mappanév törléséhez, mint

Az útmutató további példáiban bemutattam, hogyan lehet a PowerShell segítségével törölni egy mappa nevét a Tetszik szűrővel. Ezenkívül, amint azt a korábbi példákban már bemutattuk, ez a szűrő alkalmazható a Get-ChildItem parancsban vagy a Where-Object parancsban.

Például az F:ITGFiles elérési útban található összes fájl és mappa törléséhez használhatom az alábbi parancsot:

|_+_| A szűrő működéséhez helyettesítő karaktert kell használnia. Ebben a példában a csillag helyettesítő karaktert használom.

Ugyanezt az eredményt érhetem el, ha a Get-ChildItem elemet a Where-Object-hez csatlakoztatom. Ezután hajtsa végre a szűrést a Where-Object mezőben.

|_+_|

A parancs ugyanazt az eredményt adja vissza, mint az utolsó parancs!

A PowerShell használata a mappanév törléséhez, mint

Az útmutató más példáihoz hasonlóan a mappa törléséhez a két parancs bármelyikének kimenetét az Elem eltávolítása parancsra kell vezetni.

A PowerShell használata a megadott méretnél nagyobb mappák törlésére

Ha a megadott méretnél nagyobb mappákat szeretne törölni a PowerShell segítségével, először ki kell számítania a megadott elérési úton lévő mappaméreteket.

A megadott mappa elérési útjában azonban meg kell adnia az almappák teljes elérési útját. A mappa elérési útjában lévő összes almappa teljes elérési útjának felsorolásához futtassa az alábbihoz hasonló parancsot:

|_+_|

A parancs felsorolja a teljes elérési utat az F:ITGFiles mappa elérési útjában található összes almappához

Használni a Mélység paraméter helyett 0 értékkel Ismétlés biztosítja, hogy csak az első szintű almappák kerüljenek visszaadásra. A PowerShell használata a hálózati megosztott mappa törléséhez

Most, hogy megvan az almappa teljes elérési útja, ezt az információt fogom használni az egyes almappák méretének kiszámításához. Az almappák teljes elérési útja (későbbi törléséhez szükséges) és a méret eléréséhez azonban létre kell hoznom egy egyéni szkriptet.

Íme a teljes forgatókönyv:

|_+_|

És itt van a PowerShell ISE parancsának eredménye.

Amint a képernyőképen látható, a szkript csak egy olyan fájlt ad vissza, amely megfelel a méret (10 MB) kritériumainak.

Nyilvánvalóan van még egy utolsó lépésünk a feladat elvégzéséhez – törölje a fájlt. A méretkövetelménynek megfelelő fájl törléséhez módosítottam az IF utasítást a szkriptben látható módon…

|_+_|

Tehát itt van az utolsó szkript, amely törli a megadott értéknél nagyobb mappákat

|_+_| A szkript használatához módosítsa az F:ITGFiles elérési utat a Get-ChildItem 1. sorában. Módosítsa a törölni kívánt mappa méretét is – 10-ről (MB-ban) a kívánt méretre.

A PowerShell használata a hálózati megosztott mappa törléséhez

A PowerShell hálózati mappák törlésének folyamata nem különbözik a helyi mappák törlésétől. Az egyetlen különbség az, hogy hogyan ad meg egy hálózati mappát.

A hálózati mappa megadásának módja mellett a megfelelő jogosultságokkal is rendelkeznie kell. Pontosabban, megosztás módosítási engedéllyel kell rendelkeznie.

Ezenkívül az NTFS módosítása biztonsági engedéllyel is kell rendelkeznie.

Ha ezek az engedélyek teljesülnek, a Get-ChildItem paranccsal hozzáférhet a hálózati mappához. Ezután a mappa törléséhez vezesse a Get-ChildItem kimenetét az Remove-Item parancsra.

A PowerShell használatával egy hálózati mappa törlésére szolgáló eszköz bemutatásához egy TestShare nevű megosztott mappát fogok használni. A mappa az enyémen található Windows 11 ITGWIN11BETA nevű tesztszámítógép.

A megosztott hálózati mappa tartalmának felsorolásához a Get-ChildItem parancsot használom az alábbiak szerint…

|_+_|

A helyi mappákhoz hasonlóan a parancs felsorolja a megosztott hálózati mappában lévő összes mappát és almappát.

A PowerShell használata mappa vagy fájlok törlésére a következővel kezdve

Ettől kezdve az utolsó parancsot közvetlenül az Elem eltávolítása parancsra küldheti. Alternatív megoldásként alkalmazzon valamilyen szűrőt, mielőtt az Eltávolítási elemhez csatlakoztatná.

Például, ha törölni szeretne egy adott mappát, használhatja a Szűrő paramétert a Get-ChildItemben. Alternatív megoldásként beállíthatja a Get-ChildItem parancsot a Where-Objectbe, és használhatja a Szűrő paraméter a Where-Object mezőben.

Windows 10 frissítés a telepítésig

Végül, az elem törléséhez a hálózati megosztott mappában, az eredményt az Elem eltávolítása parancsra kell vezetni.

A PowerShell használata mappa vagy fájlok törlésére a következővel kezdve

Ha egy adott névvel kezdődő mappákat vagy fájlokat szeretne törölni, használja a Szűrő paramétert a Get-ChildItem parancsmagban a fájlok listázásához. Ezután írja be az eredményt az Elem eltávolítása parancsra.

Alternatív megoldásként használhatja a Töröl() Módszer a Get-ChildItemben.

A példa illusztrálására törlöm az összes f betűvel kezdődő fájlt és mappát az alábbi képernyőképen.

Ahogy korábban említettem, az első lépés a Get-ChildItem parancsmag használata a Filter paraméterrel. Íme egy példa parancs:

|_+_| Egy másik lehetőség lehet a Get-ChildItem átvezetése a Where-Object-be, és a szűrés végrehajtása a Where-Object-ben.

A parancs felsorolja az összes f betűvel kezdődő fájlt. Lásd az alábbi képernyőképet:

A PowerShell használata fájlok vagy fájlok törléséhez, majd jelentés írása naplófájlba

Az f betűvel kezdődő összes mappa és fájl törlésének utolsó lépése a kimenet kivezetése

|_+_|

A PowerShell használata a SoftwareDistribution mappa törléséhez

Amint azt már valószínűleg tudja, a Windows a SoftwareDistribution mappában tárolja a letöltött frissítéseket. Ideális esetben nem kell törölnie ezt a mappát.

Ha azonban a Windows Update adatbázis sérült, a javítás egyik módja a SoftwareDistribution mappát. Mielőtt azonban ezt megtenné, először le kell állítania a Windows Update szolgáltatást.

A Windows Update szolgáltatás leállításához futtassa a PowerShellt rendszergazdaként. Ezután futtassa az alábbi parancsot:

|_+_| Ha nem állítja le a Windows Update szolgáltatást, NEM tudja törölni a SoftwareDistribution mappát

Ezután a PowerShell használatával a SoftwareDistribution mappa törléséhez futtassa az alábbi parancsokat:

|_+_|

Végül a SoftwareDistribution mappa újbóli létrehozásához indítsa újra a Windows Update szolgáltatást

|_+_|

Hogyan használhatjuk a PowerShellt fájl vagy mappa törlésére a tömörítés után

Fájl vagy mappa tömörítéséhez használja a Compress-Archive parancsot az alábbi példában látható módon:

|_+_| Módosítsa a LiteralPath elemet a tömöríteni kívánt fájl vagy mappa forrásútvonalára. Ezenkívül módosítsa a DestinationPath értéket arra az elérési útra, amelyre a tömörített fájlt menteni szeretné.

Miután tömörítette a fájlt, az alábbi paranccsal törölje…

|_+_|

A PowerShell használata fájlok vagy fájlok törléséhez, majd jelentés írása naplófájlba

Ha a PowerShell segítségével törölni szeretne egy fájlt vagy mappát, majd jelenteni szeretné a műveleteket egy naplófájlban, először meg kell adnia a naplófájl nevét.

Ebben a példában két naplófájlt szeretnék, az egyiket a siker, a második pedig a hibák naplózására.

A naplófájljaimat általában dátum alapján szeretem létrehozni. Ebben a példában először létrehozok egy dátumbélyeget, és elmentem egy változóba:

|_+_|

Ezután létrehozok két naplófájlt a dátumbélyegző alapján…

|_+_|

Egyetlen darab hiányzik – a naplófájlok mentéséhez szükséges könyvtár elérési útja. Ennek a bitnek a hozzáadásához elmentem az elérési utat egy változóba…

|_+_|

Ezután adja hozzá a fenti naplófájlok elérési útját…

|_+_|

Az utolsó két parancs két naplófájlt hoz létre. A részletekért lásd az alábbi képernyőképet…

Most, hogy létrehoztam a naplófájljainkat, létrehozok egy PowerShell-szkriptet, amely törli a megadott útvonalon lévő fájlokat és mappákat. Ezután írjon jelentéseket a naplófájlokba.

Ebben a példában a WindowsTemp mappában lévő fájlokat szeretném törölni. Az első lépés az, hogy mentse a mappa elérési útját egy változóba…

|_+_|

Ezután a Get-ChildItem használatával listázom a mappa tartalmát, és a kimenetet a Remove-Item parancsra vezetem.

A hibák rögzítéséhez azonban az egész parancsot a Try, Catch-be kell foglalnom.

Íme a teljes forgatókönyv…

|_+_| A szkript használatához másolja a PowerShell ISE-be. Ezután módosítsa a $Path változót a törölni kívánt mappa elérési útjára. Ezenkívül módosítsa a $LogPath útvonalat arra a mappára, amelybe menteni szeretné a naplófájlokat.

Ez az – átfogó útmutatónk a PowerShell használatához fájlok vagy mappák törléséhez! Remélem hasznosnak találtad az útmutatót.

Ha hasznosnak találtad, kérlek szavazz Igen a Hasznos volt ez a bejegyzés? lent. Alternatív megoldásként részletes visszajelzést is megoszthat az oldal végén található VÁLASZ HAGYÁSA űrlappal.

Végül, további példákat tartalmazó PowerShell-útmutatókért keresse fel a Windows PowerShell útmutató oldalát. Hasznosnak találhatja INGYENES PowerShell-oktatási útmutatóinkat is.