Kā izdzēst mapes vai failus, izmantojot PowerShell

2021. gada 18. augusts 10262 Skati Kā izdzēst mapes vai failus, izmantojot PowerShell

Vai vēlaties dzēst failus un mapes, izmantojot PowerShell, bet nezināt, kā? Šajā rakstā ir sniegti detalizēti norādījumi par to, kā izmantot PowerShell, lai dzēstu mapi, failu vai visas mapes un failus noteiktā ceļā.





Šajā emuāra ziņojumā ir aprakstīti dažādi veidi, kā dzēst mapes un failus, izmantojot PowerShell. Ja tas izklausās interesanti, turpiniet lasīt!



Rokasgrāmatas sākumā ir izskaidroti 2 veidi, kā izmantot PowerShell mapju un failu dzēšanai. Pēc tam otrajā sadaļā uzzināsit, kā labot izplatītākās kļūdas, kas saistītas ar failu un mapju dzēšanu, izmantojot PowerShell.

Visbeidzot, rokasgrāmatā ir vairāk nekā 20 piemēru.



Pārlūkojiet ziņu tēmas



2 veidi, kā izdzēst mapi vai failu, izmantojot PowerShell

PowerShell piedāvā divus veidus, kā izdzēst vienumus. Varat izdzēst mapi vai failu, izmantojot PowerShell dzēšanas metodi.

Otrkārt, varat izmantot vienumu Remove-Item, lai dzēstu vienumus programmā PowerShell. Šīs sadaļas nākamajās 2 apakšsadaļās jūs uzzināsit, kā izmantot šīs metodes.



1. metode: izmantojiet Powershell Dzēst() Mapes vai faila dzēšanas metode

Lai PowerShell dzēstu mapi, ir nepieciešama Get-ChidItem cmdlet. Get-ChildItem Cmdlet atgriež vienumus un pakārtotos vienumus noteiktā vietā.



Lai uzskaitītu visus ceļā esošos failus un mapes E: ziņo , palaidiet tālāk norādīto komandu:

|_+_|

Šeit ir rezultāts programmā PowerShell…

Kā lietot Powershell Delete ()

Šai komandai ir izsaukta metode Dzēst . Jūs varat izmantot Dzēst Mapju un failu dzēšanas metode.

Lai redzētu pieejamās metodes iepriekš minētajā komandā, ievadiet komandu Get-Member cmdlet.

|_+_|

Komanda atgrieza divu veidu īpašības. viens , System.IO.DirectoryInfo (skatiet pirmo attēlu zemāk). divi , System.IO.FileInfo . Pirmais attiecas uz mapēm ceļā, bet otrais attiecas uz failiem.

Uzmanīgi apskatiet abus attēlus. Ievērojiet, ka katram no tiem ir sava metode Dzēst . Jūs varat izmantot Dzēst PowerShell metode mapes vai faila dzēšanai.

Nākamajā apakšnodaļā es parādīšu, kā to izmantot Dzēst Metode.

Kā izmantot Dzēst () Powershell metode mapes vai faila dzēšanai

Sintakse Dzēst Metode ir:

|_+_|

Objekts ir mape ar faila informāciju, ko atgriež Get-ChidItem cmdlet. Turklāt Dzēst ir metode, kam parasti seko () operators.

Lai būtu viegli saprast iepriekš minēto sintakses komandu, šeit ir oriģinālā komanda Get-ChildItem:

|_+_|

un rezultāts…

labas piezīmes android
Kā lietot Powershell Delete ()

Pamatojoties uz to, ko esmu paskaidrojis līdz šim, teorētiski varat izmantot PowerShell dzēšanas metodi, lai izdzēstu mapi, ko sauc par pārskatiem, izpildot tālāk norādīto komandu:

|_+_|

Tomēr pēdējā komanda atgriež kļūdas ziņojumu Direktorija nav tukša.

Lai atrisinātu šo problēmu, man ir nepieciešama komanda, kas atgriež visus ceļā esošos failus un mapes un apakšmapes. Pēc tam rezultāts jānosūta uz aForEach cilpu.

Šeit ir modificēta komanda:

|_+_|

Šeit ir komanda PowerShell. Visi faili ir izdzēsti no norādītā ceļa.

Pēdējā komanda izdzēš failus norādītajā mapē un tās apakšmapēs. Tomēr tas neizdzēš mapes.

Lai izdzēstu mapes, palaidiet tālāk norādīto komandu:

|_+_|

Lai to apstiprinātu E: ziņo tagad ir tukšs, es vēlreiz izpildīšu komandu Get-ChildItem.

|_+_|

Tas neko neatgriež!

Pirms pārietu uz nākamo sadaļu, ļaujiet man paskaidrot, kā šī komanda izdzēsa visus failus un apakšmapes.

|_+_|

Get-ChildItem ir divi izsaukti parametri Iekļauts un Atkārtošanās . Komandā es izmantoju -Iekļaut *.* lai pateiktu PowerShell rezultātos iekļaut katru failu.

Atkārtošanās , no otras puses, liek Get-ChildItem atgriezt visas mapes un apakšmapes.

Komandas otrajā daļā es pievienoju Get-ChildItem priekšrakstam ForEach . ForEach veic visus Get-ChildItem atgrieztos objektus un izmanto Dzēst To dzēšanas metode.

Kā jau minēju, ieviešot šo sadaļu, PowerShell ir cmdlet ar nosaukumu Noņemt vienumu konkrēti. Varat arī izmantot šo PowerShell cmdlet, lai izdzēstu mapi vai failu.

Nākamajā sadaļā ir aprakstīts, kā lietot Noņemt vienumu . Pēc manas pieredzes, izmantojot Noņemt vienumu ir labāk nekā lietot Dzēst() Metode.

2. metode: izmantojiet Powershell Noņemt vienumu Cmdlet mapes vai faila dzēšanai

Lai izdzēstu failu vai mapi, izmantojot Noņemt vienumu jums joprojām ir jāizmanto PowerShell cmdlet, Get-ChildItem. Pēc tam novadiet rezultātu uz Noņemt vienumu .

Tu vari skriet Noņemt vienumu bez Get-ChildItem . Tomēr, pēc manas pieredzes, vairumā gadījumu vislabāk ir uzskaitīt vienumu ar Get-ChildItem . Pēc tam ievadiet izvadi uz Noņemt vienumu .

Pirmajā šīs sadaļas piemērā es vēlos izmantot PowerShell, lai izdzēstu mapi ITGServer2. Skatiet zemāk redzamo ekrānuzņēmumu.

2. metode: izmantojiet Powershell Remove-Item cmdlet, lai izdzēstu mapi vai failu

Šeit ir komanda PowerShell, kas izdzēsīs mapi ...

|_+_|

Pēc iepriekš minētās komandas palaišanas mape ir pazudusi!

2. metode: izmantojiet Powershell Remove-Item cmdlet, lai izdzēstu mapi vai failu

Otrajā piemērā es vēlos izdzēst mapes un apakšmapes mapē E: eports. Tālāk esošā komanda veiks darbu…

|_+_|

Pēc pēdējās komandas palaišanas visas mapes norādītajā mapē ir pazudušas!

2. metode: izmantojiet Powershell Remove-Item cmdlet, lai izdzēstu mapi vai failu

Kā labot izplatītas kļūdas, izmantojot Powershell dzēst mapi vai failu

Kā labot izplatītas kļūdas, izmantojot Powershell dzēst mapi vai failu

Palaižot komandu Remove-Item PowerShell, lai izdzēstu mapi vai failu, tā var atgriezt dažas kļūdas. Šajā sadaļā ir aprakstītas dažas no šīm kļūdām un to novēršana.

Es uzskatu, ka labāk ir apspriest šo izplatīto kļūdu risinājumus, pirms mēs iedziļināmies dažos reālās dzīves sistēmas administratora piemēros par to, kā izmantot PowerShell mapju vai failu dzēšanai.

Kā novērst Powershell dzēšanas mapes vai faila piekļuves liegtas kļūdas

Ja palaižat vienumu Remove-Item, lai izdzēstu failu vai mapi, un saņemat kļūdas ziņojumu Access Denied, mēģiniet veikt šādas darbības:

  1. Mainiet faila vai mapes īpašnieku — izmantojiet tālāk norādītos kodus, lai mainītu faila vai mapes īpašnieku uz vietējo administratoru

Lai palaistu šo komandu, atveriet PowerShell kā administratoru, pretējā gadījumā pēdējā komanda neizdosies.

|_+_| Mainiet mapes ceļu F:ITGFilesTextfiles uz pilnu faila vai mapes ceļu

Kad esat mainījis īpašnieku uz vietējo administratoru, mēģiniet vēlreiz dzēst failu vai mapi, izmantojot PowerShell. Ja tas nedarbojas, izmēģiniet šos labojumus.

  1. Pievienojiet Spēks parametru uz Remove-Item
  2. Tā vietā izmēģiniet Delete() metodi. Ja nezināt, kā izmantot PowerShell Delete() metodi, skatiet šīs rokasgrāmatas sadaļu Kā lietot Delete() metodi programmā Powershell, lai dzēstu mapi vai failu (saite tiek atvērta citā pārlūkprogrammas cilnē).

Kā izlabot Powershell dzēšanas mapi nevar noņemt, jo tā nav tukša

Ja jūs saņemat nevar noņemt, jo tas nav tukšs, kļūda, palaižot komandu:

|_+_|

Mēģiniet izmantot Get-ChildItem ar parametru Recurse. Pēc tam virziet to uz Remove-Item ar Spēks un Atkārtošanās parametrus.

Šeit ir komandas paraugs:

|_+_|

Varat arī palaist Get-ChildItem un norādīt zvaigznītes aiz pēdējās slīpsvītras ceļā. Tas izdzēš visu mapes saturu.

Piemēram, ja es palaižu komandu…

|_+_|

…un saņemšanu nevar noņemt, jo tas nav tukšs, lai novērstu problēmu, es vispirms izpildīšu tālāk norādīto komandu:

|_+_|

Pēdējā komanda dzēš tikai E: eports vienumus. Visbeidzot, lai izdzēstu mapi (kas tagad ir tukša), es izpildīšu tālāk norādīto komandu…

|_+_|

Kā labot Powershell dzēšanas mapi, ko izmanto cita procesa kļūda

Kā labot Powershell dzēšanas mapi

Ja saņemat ziņojumu Remove-Item atgriež kļūdas ziņojumu, jo to izmanto cits process, ir jāiekļauj parametrs Force.

Šeit ir oriģināls, kas atgrieza kļūdas ziņojumu…

|_+_|

Lai novērstu šo problēmu, failam palaidiet tālāk norādīto komandu:

|_+_|

Pēdējā komanda veiksmīgi izdzēsa failu…

Kā novērst Powershell dzēšanas mapes vai faila mapes vai pārāk gara faila nosaukuma kļūdu

Šķiet, ka tas ir zināms PowerShell ierobežojums.

Tomēr, lai atrisinātu šo problēmu, varat izmantot tev cmd komanda. Pēc tam ievadiet rezultātu komandai Remove-Item.

Šeit ir piemērs…

|_+_| Komanda dir ir cmd ekvivalents PowerShell Get-ChildItem.

Kā labot Powershell dzēšanas mapes piekļuvi ceļam ir liegta kļūda

Komanda PowerShell Remove-Item parāda kļūdas ziņojumu piekļuvei ceļam ir liegta, ja mēģināt dzēst mapi, kuras dzēšanai jums nav atļaujas.

Šis kļūdas ziņojums tiek parādīts tāpēc, ka jums nav piekļuves mapei. Pirms palaižat komandu Remove-Item, palaidiet tālāk norādītās komandas, lai piešķirtu vietējiem administratoriem piekļuvi mapei.

Šis labojums paredz, ka konts, kuru izmantojāt, lai pieteiktos, ir vietējās administratoru grupas dalībnieks. Pirms izpildāt tālāk norādīto komandu programmā PowerShell ISE, mainiet ceļu F:ITGFilesTextfiles uz mapes ceļu, kuru mēģināt dzēst. |_+_|

Kad esat pabeidzis iepriekš minētā skripta palaišanu, atkārtoti palaidiet komandu Remove-Item.

Vairāk Powershell mapju vai failu dzēšanas piemēru

Vairāk Powershell mapju vai failu dzēšanas piemēru

Šajā pēdējā rokasgrāmatas sadaļā ir ietverti vairāki piemēri, kā izmantot PowerShell failu vai mapju dzēšanai.

Kā izdzēst mapi vai failu, izmantojot PowerShell, ja tā pastāv

Tā kā šajā piemērā ir nosacījums — ja mape vai fails pastāv, komandas pirmais ceļš pārbauda, ​​vai vienums pastāv.

Jūs varat izmantot Testa ceļš komandu, lai pārbaudītu, vai mape vai fails pastāv. Pēc tam izmantojiet nosacījumu IF, lai noņemtu mapi vai failu, ja tāds pastāv.

Mēs varam apvienot abas komandas IF priekšraksta blokā…

Šajā piemērā es vēlos izdzēst mapi ITGServer ceļā F:ITGFilesTextfiles — ja mape pastāv.

Šeit ir pavēle…

|_+_|

Šajā piemērā šī mape pastāv, tāpēc tā tika izdzēsta. Tomēr, ja mēs izmēģināsim komandu ar failu, kas neeksistē, mēs saņemsim ziņojumu mapē Citādi IF paziņojuma bloks.

Kā izdzēst mapi un tās apakšmapes, izmantojot PowerShell

Lai izdzēstu mapi un visas apakšmapes, palaidiet Noņemt vienumu komandu ar Atkārtošanās un Spēks parametrus.

Šeit ir piemērs…

|_+_|

Kā izdzēst mapi vai failu, kas vecāks par x dienām (vai pamatojoties uz datumu), izmantojot PowerShell

Šajā piemērā, tā kā mēs vēlamies dzēst failus vai mapes, kas ir vecāki par x dienām, pirmais solis ir iegūt dienu atsauci. Tas tiek darīts ar komandu Get-Date.

Tomēr, tā kā mēs vēlamies dzēst vienumus, kas vecāki par x dienām, mums kā negatīva vērtība ir jānorāda x dienas. Piemēram, lai izdzēstu visus failus vai mapes, kas ir vecākas par 7 dienām, iegūstiet dienu atsauci, izmantojot tālāk norādīto komandu:

|_+_|

Pēc tam izmantojiet Get-ChildItem komandu, lai iegūtu LastWriteTime preces īpašums. The LastWriteTime rekvizīts reģistrē pēdējo datumu, kad mape vai fails tika mainīts.

Papildus tam LastWriteTime rekvizītu, komanda Get-ChildItem atgriež citu rekvizītu, ko sauc PSIsContainer . Īpašums PSIsContainer atšķir failu no mapes.

Ja PSIsContainer ir taisnība, tas nozīmē, ka vienums ir mape. No otras puses, ja PSIsContainer ir nepatiess, tas nozīmē, ka vienums ir fails.

Pirms ieviešu rekvizītu LastWriteTime, ļaujiet man vispirms palaist komandu Get-ChildItem un filtrēt pēc rekvizīta PSIsContainer:

|_+_|

Šī komanda atgrieza vienu objektu, ko sauc ITG jo šī ir vienīgā mape ceļā F:ITGFilesTextfiles.

Alternatīvi, lai uzskaitītu tikai ceļā esošos failus, palaidiet tālāk norādīto komandu:

|_+_|

Šoreiz, jo norādīju līdz $ _. PSIsConta nolaižas -eq $ FALSE , PowerShell atgriež visas mapes, kas nav mapes.

Tagad, kad jūs saprotat, kā uzskaitīt mapes vai failus mapē, iepazīstināsim ar LastWriteTime rekvizītu. Kā jau minēju iepriekš, pēdējais datums un laiks, kad vienums tika modificēts, tiek ierakstīts rekvizītā LastWriteTime.

Šīs komandas ietver rekvizītu LastWriteTime:

|_+_|

Pirmā komanda atgriež visas mapes, kas pēdējo reizi tika modificētas pirms dienas atsauces, kas saglabāta mainīgajā $DaysRef. Šajā piemērā dienas atsauce ir 7 dienas.

Gluži pretēji, otrā komanda atgriež visus failus, kas modificēti pēdējās x dienās, kur x dienas šajā piemērā ir vienādas ar 7.

Otrais un pēdējais posms šajā piemērā, kurā tiek izmantota PowerShell, lai dzēstu mapes ar failiem, kas vecāki par x dienām, ir komandas Kur-Object pārsūtīšana uz Remove-Item.

Tālāk esošais skripts pabeidz failu un mapju dzēšanas uzdevumu…

|_+_| Ja neviens fails vai mape neatbilst LastWriteTime kritērijiem, neviens netiks dzēsts.

Kā izmantot PowerShell, lai izdzēstu tikai mapes saturu

Šajā piemērā es izdzēsīšu mapes F:ITGFilesfolder saturu, bet ne pašu mapi.

Ja vēlaties dzēst tikai mapes saturu, bet saglabāt mapi, palaidiet komandu Remove-Item, kā parādīts tālāk esošajā piemērā:

|_+_|

Viltība ir pievienot zvaigznīti pēc pēdējās slīpsvītras mapes ceļa beigās.

The Atkārtošanās parametrs dzēš visas mapes un apakšmapes norādītajā ceļā. Šajā piemērā F:ITGFilesfolder*

Kā izmantot PowerShell, lai izdzēstu mapi un saturu bez apstiprinājuma vai uzvednes

Mapes un satura dzēšana, neprasot apstiprinājumu, ir pievienot Spēks un Apstiprināt:$false parametrus uz Noņemt vienumu komandu.

Ja es izpildu tālāk norādīto komandu, nepievienojot Apstiprināt:$false parametru, es apstiprināšu, ka vēlos dzēst mapi un visu tās saturu.

|_+_|

Tomēr, ja es nevēlos saņemt šo apstiprinājuma uzvedni, es iekļaušu parametru Confirm:$false.

|_+_|

Komandai vajadzētu palaist, neprasot apstiprināt darbību. Tāpat ņemiet vērā, ka parametrs, kas aptur apstiprinājuma uzvedni, ir Apstiprināt:$false .

Ja pēdējā komanda joprojām prasa apstiprinājumu, vispirms palaidiet Get-ChildItem komandu. Pēc tam ievadiet izvadi uz komandu Remove-Item, kā parādīts tālāk:

|_+_|

Diemžēl pēdējā komanda neizdzēš vecākmapes mapi. Lai izdzēstu vecākmapi un visu tās saturu, komandai Get-ChildItem pievienojiet parametru -filter, kā parādīts šajā komandā:

|_+_|

Kā izmantot PowerShell, lai dzēstu mapi vai failu atkritnē

Ja izdzēšat mapi vai failu, izmantojot komandu Remove-Item, tas tiek neatgriezeniski izdzēsts. Citiem vārdiem sakot, mape netiek pārvietota uz atkritni.

Diemžēl nav PowerShell cmdlet, lai dzēstu mapi vai failu atkritnē. Es mēģināju šim uzdevumam izveidot pielāgotu funkciju. Tomēr es atradu esošu funkciju, ko izveidoja a stackoverflow.com līdzstrādnieks.

Lai tā būtu pieejama mūsu lasītājiem, es augšupielādēju funkcijas kopiju S Zone. Lai lejupielādētu un izmantotu funkciju, veiciet tālāk norādītās darbības.

  1. Noklikšķiniet uz download Remove-ItemToRecycleBin.zip, lai lejupielādētu funkciju
  2. Pēc tam izsaiņojiet lejupielādēto ZIP failu. Izsaiņojot failu, tiks izveidota mape Remove-ItemToRecycleBin.
  3. Visbeidzot, kopējiet mapi savā Windows 10 PowerShell profila moduļu mapē. Mape atrodas tālāk norādītajā ceļā
|_+_| ir jūsu Windows 10 profila nosaukums. Tas parasti atrodas mapē C:Users. Tomēr, ja tas nav diskā C, skatiet disku D vai E.

Kad esat nokopējis moduļa mapi savā moduļa mapē, varat to izmantot tāpat kā jebkuru citu PowerShell komandu. Lai ilustrētu, kā tas darbojas, es izdzēsīšu E: eports uz atkritni.

Tomēr, pirms izpildu komandu, šeit ir manas tukšās atkritnes ekrānuzņēmums.

Kā izmantot PowerShell, lai dzēstu mapi vai failu atkritnē

Tagad, lai izmantotu PowerShell, lai izdzēstu mapi, E: eports at Recycle Bin, es izpildīšu tālāk norādīto komandu:

|_+_|

Pēc iepriekš minētās komandas palaišanas pārskatu mape tiks pārvietota uz atkritni. Skatiet zemāk redzamo ekrānuzņēmumu…

Kā izmantot PowerShell, lai izdzēstu mapi vai failu un izslēgtu citas mapes vai failus

Komandai Remove-Item ir Izslēgt parametrs. Šis parametrs tiek izmantots, lai izslēgtu mapi vai failu, kuru nevēlaties dzēst.

Šeit ir piemērs. Es vēlos dzēst visas mapes ceļā F:ITGFilesTextfiles5. Tomēr es nevēlos dzēst mapi 3.

Kā izmantot PowerShell, lai izdzēstu mapi vai failu un izslēgtu citas mapes vai failus

Kā redzat iepriekš redzamajā ekrānuzņēmumā, mapē ir gan mapes, gan faili.

Lai dzēstu tikai mapes, vispirms ir jāizmanto komanda Get-ChildItem, lai uzskaitītu visus ceļa vienumus. Pēc tam ievadiet izvadi uz objektu Kur un filtrējiet pēc rekvizīta PSIsContainer.

|_+_|

Pēc pēdējās komandas palaišanas visas mapes tiek izdzēstas, bet ne mape3. Tāpat ievērojat, ka faili mapē F:ITGFilesTextfiles5 netika izdzēsti.

Iemesls, kāpēc tika izdzēstas tikai mapes, ir tas, kas atrodas mapē Kur-Objekts bloku, es filtrēju pēc {$_.PSIsContainer -eq $TRUE}. PSIsContainer rekvizīts norāda, ka objekts ir mape.

Turpinot, vienumam Remove-Item ir arī parametrs Iekļaut. Šis parametrs veic pretēju darbību parametram Izslēgt.

Es varu sasniegt tādu pašu rezultātu kā pēdējā komanda, aizstājot Exclude ar Iekļaut. Tomēr atšķirībā no iepriekšējās komandas tagad uzskaitīšu mapes, kuras vēlos dzēst.

Šeit ir komandas paraugs, kas no F:ITGFilesTextfiles5 izdzēš tikai mapi1.

|_+_|

Pēc iepriekšējās komandas palaišanas pamanīsit, ka tika izdzēsta tikai mape1.

Ja vēlaties dzēst failus, nevis mapes, mainiet $_.PSIsContainer -eq $TRUE uz $_.PSIsContainer -eq $FALSE

Kā izmantot PowerShell, lai izdzēstu mapi, pat ja tā nav tukša

Ja vēlaties dzēst mapi, izmantojot PowerShell, pat ja mape nav tukša, iekļaujiet Spēks un Atkārtošanās parametrus. Šeit ir piemērs.

|_+_|

Kā izmantot PowerShell, lai izdzēstu tukšās mapes, kas vecākas par X dienām

Veiciet tālāk norādītās darbības, lai izmantotu PowerShell, lai izdzēstu tukšas mapes, kas vecākas par x dienām…

Šajā piemērā es vēlos dzēst mapes, kas vecākas par 90 dienām no sava Windows 10 profila, C:UsersVictorA.

  1. Izmantojiet Get-ChildItems, lai uzskaitītu tikai norādītajā ceļā esošās mapes:
|_+_|

Komanda uzskaita visas mapes norādītajā ceļā. Ja atceraties, iepriekšējās šīs rokasgrāmatas komandās mēs izmantojām, lai atgrieztu mapes Kur-Objekts lai filtrētu pēc PSIsContainer īpašums. Tomēr es nolemju sasniegt tādu pašu rezultātu, izmantojot Direktorija parametrs Get-ChildItem .

  1. Pēc tam komandas Get-ChildItem rezultātu ievadiet uz Kur-Object. Komandā Kur-Object pievienojiet filtru, kas atgriež tikai tukšas mapes. Šeit ir pavēle…
|_+_|
  1. Tagad mums ir jāpievieno ceļš, kas atgriež mapes iepriekšējā sarakstā, kas vecākas par 90 dienām. Tas ietver divas komandas.

Pirmajā komandā es izmantošu Get-Date, lai noteiktu laika perioda datumu. Piemērā pirms 90 dienām. Lai to atvieglotu, es saglabāšu rezultātu mainīgajā ar nosaukumu $DaysRef.

|_+_|

Pēc tam otrajā komandā es iekļaušu vēl vienu filtru pēdējās komandas sadaļā Kur-Object.

|_+_|

Šeit ir pēdējās komandas rezultāts…

Kā izmantot PowerShell, lai izdzēstu tukšās mapes, kas vecākas par X dienām

Kā redzat, pēdējā komanda tagad atgriež tikai divas tukšas mapes. Es izpildīju šo komandu 2021. gada 4. augustā. Kā redzat, LastWriteTime no abām mapēm ir 16/06/2021 16:29.

ASV lasītājiem šis datums ir 2021. gada 16. augusts (16.06.2021.)

Tas nozīmē, ka pēdējo reizi abas mapes tika mainītas vairāk nekā 90 dienas pēc komandas palaišanas.

  1. Visbeidzot, lai izdzēstu šīs tukšās mapes, kas vecākas par 90 dienām, ievadiet pēdējo komandu uz komandu Remove-Item PowerShell.
|_+_|

Kā izmantot PowerShell, lai izdzēstu lietotāja profila mapi

Lai izdzēstu lietotāja profila mapi ar komandām šajā sadaļā, OBLIGĀTI atveriet PowerShell kā administratoru . Pretējā gadījumā var tikt parādīts kļūdas ziņojums par piekļuvi liegta

Pirmais solis, lai izmantotu PowerShell, lai izdzēstu lietotāja profila mapi, ir noteikt ceļu uz lietotāja mapi. PowerShell ir vides mainīgais, kas atgriež ceļu uz Windows instalācijas direktoriju.

Mainīgais ir…

|_+_|

Šī komanda atgriež ceļu, piemēram, C:WINDOWS. Tikmēr mape Lietotāji (kurā ir visas lietotāja profilu mapes) atrodas tā diskdziņa saknē, kurā ir instalēta sistēma Windows.

Manā piemērā mape Lietotāji atrodas diskā C:WINDOWS.

Tomēr, lai atgrieztu C: no C:WINDOWS, izmantojiet sadalīšanas metodi, kā parādīts tālāk esošajā komandā.

|_+_|

Komanda atgriež C: un WINDOWS. Nākamais solis ir atgriezt C: – šis ir pirmais vienums masīvā.

Kā izmantot PowerShell, lai izdzēstu lietotāja profila mapi

Lai piekļūtu šim vienumam, iekļaujiet šo [0] pēdējā komandā, kā parādīts tālāk.

|_+_|

Tagad mums ir C:

Kā izmantot PowerShell, lai izdzēstu lietotāja profila mapi

Iepriekš minēju, ka visi lietotāju profili atrodas mapē Lietotāji. No pēdējās komandas es pievienošu Users atgriešanai C:Users

|_+_|

Tagad mums ir pilns ceļš uz mapi Lietotāji.

Nākamajā komandā es izmantošu Get-ChildItem, lai uzskaitītu visas lietotāja profila mapes mapē Lietotāji. Tomēr, lai izvairītos no kļūdām, es vispirms saglabāšu pēdējo komandu mainīgajā.

whatsapp drošības kods mainīts nozīmē
|_+_|

Tagad es varu izmantot Get-ChildItem, lai atgrieztu visas lietotāja profilu mapes mapē Lietotāji. Šeit ir komanda:

|_+_|

Un rezultāts programmā PowerShell…

Kā izmantot PowerShell, lai izdzēstu lietotāja profila mapi

Pēdējais bits būs pēdējās komandas ievadīšana uz Remove-Item. Tomēr ir jāizmanto parametrs Filtrs, lai izdzēstu tikai to lietotāja profila mapi, no kuras vēlaties atbrīvoties.

Šajā piemērā es vēlos izdzēst lietotāja profila mapi ar nosaukumu victo un visas tās apakšmapes

Šeit ir pēdējā komanda, kas izmanto PowerShell, lai izdzēstu lietotāja profila mapi:

|_+_|

Pēc šīs komandas palaišanas tagad, ja palaižat tālāk norādīto komandu, dzēstais profils vairs netiks rādīts.

|_+_|

Kā izmantot PowerShell, lai izdzēstu mapi no Appdata

PowerShell ir divi vides mainīgie pieteikušies lietotāja AppData mapei.

|_+_|

Vides mainīgais, kuru izlemjat izmantot, ir atkarīgs no dzēšamās mapes atrašanās vietas. Tomēr, ja neesat pārliecināts par dzēšamās mapes atrašanās vietu, varat meklēt abās vietās.

Lai to panāktu, es saglabāšu abus vides mainīgos mainīgajā ar nosaukumu $appdatafolders…

|_+_|

Pēc tam es izmantošu ForEach cilpu, lai pārbaudītu abas atrašanās vietas. Šeit ir kods, kas veic šo darbu…

|_+_| Es iekļāvu parametru WhatIf, lai PowerShell neizdzēstu mapi. Tā vietā PowerShell parādīs darbību, kas tai bija jāveic, ja parametrs WhatIf nebija iekļauts.

Šeit ir PowerShell komandas rezultāts. Attēls ekrānuzņēmuma labajā pusē ir mape manā AppData mapē.

Kā izmantot PowerShell, lai izdzēstu mapi no Appdata

Kā izmantot PowerShell, lai izdzēstu slēpto mapi

Komandai Get-ChildItem ir parametrs ar nosaukumu Hidden. Ja vēlaties norādīt slēptās mapes norādītajā mapē, iekļaujiet parametru Hidden.

Tālāk esošajā ekrānuzņēmumā man ir 3 mapes (nav vai tās ir paslēptas).

Lai parādītu, kā izmantot PowerShell slēpto mapju dzēšanai, es paslēpšu Textfiles3. Tagad mape ir paslēpta.

Kā izmantot PowerShell, lai izdzēstu slēpto mapi

Lai uzskaitītu slēpto mapi, es izpildīšu tālāk norādīto komandu…

|_+_|

Kā gaidīts, komanda uzskaita tikai slēpto mapi.

Lai dzēstu slēpto mapi, izmantojot PowerShell, es tagad ievadīšu pēdējo komandu uz komandu Remove-Item.

|_+_|

Lai apstiprinātu, ka mape ir izdzēsta, es aktivizēju atribūtu Rādīt slēptos vienumus programmā File Explorer.

Kā izmantot PowerShell, lai izdzēstu slēpto mapi

Kā izmantot PowerShell, lai izdzēstu failus, bet saglabātu mapes struktūru

Var būt gadījumi, kad vēlaties dzēst visus mapē esošos failus, tostarp tās apakšmapes, bet saglabāt mapes struktūru.

Lai to panāktu, ir jāpalaiž komanda Get-ChildItem un jānorāda parametrs Fails. Kad izmantojat parametru Fails, Get-ChildItem uzskaita tikai norādītajā mapē esošos failus.

Lai parādītu, kā tas darbojas, esmu izveidojis mapju struktūru, kas parādīta zemāk esošajā ekrānuzņēmumā:

Kā izmantot PowerShell, lai izdzēstu failus, bet saglabātu mapes struktūru

Kā redzams ekrānuzņēmumā, mapei 1 ir divas apakšmapes, mape2 un mape3. Turklāt mapei 2 un mapei 3 ir daži faili.

Lai izmantotu Get-ChildItem, lai parādītu tikai failus ceļā F:ITGFilesfolder1, es izpildīšu tālāk norādīto komandu:

|_+_|

Komanda parāda tikai failus divos ceļos: F:ITGFilesfolder1folder2 un Directory: F:ITGFilesfolder1folder3

Visbeidzot, lai izdzēstu failus, bet saglabātu mapes struktūru, ievadiet pēdējo komandu uz Remove-Item…

|_+_|

Komanda izdzēš visus failus, bet atstāj neskartu mapes struktūru!

Kā izmantot PowerShell, lai izdzēstu reģistra atslēgas mapi

Komanda uzskaitīt un dzēst reģistra atslēgas mapi ir tā pati komanda, ko izmanto parasto mapju dzēšanai.

Ja esat lasījis šo rokasgrāmatu no paša sākuma, līdz šim esam izmantojuši divas komandas:

Get-ChildItem : izmanto, lai uzskaitītu vienumus noteiktā ceļā
Noņemt vienumu : izmanto, lai izdzēstu Get-ChildItem uzskaitītos failus/mapes

Tomēr vienīgā atšķirība ir tā, kā jūs piekļūstat reģistra atslēgu mapēm.

Ir vairāki veidi, kā formatēt reģistra atslēgu lietošanai komandās Get-ChildItem un Remove-Item. Tomēr šajā piemērā es izmantošu tālāk norādīto metodi.

|_+_|

Šajā piemērā es vēlos piekļūt reģistra atslēgas mapei HKEY_CURRENT_USERControl PanelDesktop. Kā redzat iepriekš norādītajā komandas formātā, lai to izdarītu, es pievienoju vārdu reģistrs, kam seko divi koli, ::

Lai uzzinātu vairāk par to, kā PowerShell darbojas ar Windows reģistru, izlasiet mūsu rokasgrāmatu - Kā izmantot PowerShell, lai lasītu reģistra vērtību .

Pārvietojot piemēru uz nākamo darbību, lai uzskaitītu vienumus iepriekš minētajā reģistra atslēgas mapē, palaidiet tālāk norādīto komandu:

automātiskais fona mainītājs
|_+_|

Komanda parāda visas apakšatslēgas mapes norādītajā reģistra atslēgas mapē.

Ja vēlos izdzēst noteiktu mapi, es vispirms palaidīšu Get-ChildItem. Pēc tam es izvadīšu izvadi uz Select-Object

|_+_|

Iepriekš minētā komanda parāda pilnu ceļu uz visām apakšatslēgām manā sākotnējā reģistra atslēgas mapē:

Kā izmantot PowerShell, lai izdzēstu reģistra atslēgas mapi

Pēc tam, lai dzēstu apakšatslēgas, es ievadīšu pēdējo komandu uz Remove-Item. Tomēr, lai izdzēstu noteiktu apakšatslēgas mapi, es vispirms ievadīšu pēdējo komandu uz Kur-Object un filtrēšu pēc tās apakšatslēgas nosaukuma, kuru vēlos dzēst:

|_+_|

Pēdējā komanda tagad atgriež tikai norādīto reģistra apakšatslēgas mapes ceļu.

Visbeidzot, lai izdzēstu šo mapes apakšatslēgu, izmantojot PowerShell, ievadiet pēdējo komandu uz Remove-Item. Pirms tam jums ir jāmaina reģistra atslēga un jāpievieno tā Get-Item.

Lai to atvieglotu, pēdējo komandu saglabāšu mainīgajā

|_+_|

Pēc tam formatējiet to komandai Get-Item

|_+_|

Visbeidzot ievadiet formatēto atslēgas ceļu uz Get-Item…

|_+_|

Tagad mēs varam dzēst vērtību, pievienojot pēdējo komandu uz Remove-Item (es iekļāvu whatif parametru, jo es nevēlos dzēst šo atslēgu)

|_+_|

Un šeit ir rezultāts…

Kā izmantot PowerShell, lai izdzēstu reģistra atslēgas mapi

Kā izmantot PowerShell, lai izdzēstu mapes nosaukumu, piemēram

Citu šīs rokasgrāmatas piemēru laikā esmu parādījis, kā izmantot PowerShell, lai izdzēstu mapes nosaukumu, izmantojot filtru Patīk. Tāpat, kā jau parādīts iepriekšējos piemēros, šo filtru var lietot komandā Get-ChildItem vai komandā Kur-Object.

Piemēram, lai izdzēstu visus failus un mapes ar tādiem nosaukumiem kā fails ceļā F:ITGFiles, es varu izmantot tālāk norādīto komandu:

|_+_| Lai filtrs darbotos, iespējams, būs jāizmanto aizstājējzīme. Šajā piemērā es izmantoju zvaigznītes aizstājējzīmi.

To pašu rezultātu varu sasniegt, savienojot Get-ChildItem uz Kur-Object. Pēc tam veiciet filtrēšanu sadaļā Kur-Object.

|_+_|

Komanda atgriež tādu pašu rezultātu kā pēdējā komanda!

Kā izmantot PowerShell, lai izdzēstu mapes nosaukumu, piemēram

Tāpat kā citos šīs rokasgrāmatas piemēros, lai dzēstu mapi, ievadiet jebkuras no divām komandām izvadi uz Remove-Item.

Kā izmantot PowerShell, lai dzēstu mapes, kas lielākas par norādīto izmēru

Ja vēlaties dzēst mapes, kas ir lielākas par norādīto izmēru, izmantojot PowerShell, vispirms ir jāaprēķina mapju izmēri norādītajā ceļā.

Tomēr jums ir jānorāda pilns ceļš uz apakšmapēm norādītajā mapes ceļā. Lai norādītu pilnu ceļu uz visām mapes ceļa apakšmapēm, palaidiet komandu, kas ir līdzīga tālāk norādītajai:

|_+_|

Komandā ir uzskaitīti pilni ceļi uz visām apakšmapēm mapes ceļā F:ITGFiles

Izmantojot Dziļums parametrs ar 0 vērtību, nevis Atkārtošanās nodrošina, ka tiek atgrieztas tikai pirmā līmeņa apakšmapes. Kā izmantot PowerShell, lai izdzēstu tīkla koplietoto mapi

Tagad, kad man ir pilns ceļš uz apakšmapi, es izmantošu šo informāciju, lai aprēķinātu katras apakšmapes lielumu. Tomēr, lai būtu pilns ceļš uz apakšmapēm (nepieciešams to dzēst vēlāk) un lielumu, man ir jāizveido pielāgots skripts.

Šeit ir pilns skripts:

|_+_|

Un šeit ir PowerShell ISE komandas rezultāts.

Kā redzat ekrānuzņēmumā, skripts atgriež tikai vienu failu, kas atbilst izmēra (10 MB) kritērijiem.

Acīmredzot mums ir vēl pēdējais uzdevums, lai pabeigtu uzdevumu - izdzēst failu. Lai izdzēstu failu, kas atbilst lieluma prasībām, es modificēju IF priekšrakstu, kā parādīts šajā skriptā…

|_+_|

Tātad, šeit ir pēdējais skripts, kas izdzēš mapes, kas ir lielākas par norādīto vērtību

|_+_| Lai izmantotu skriptu, Get-ChildItem 1. rindā mainiet ceļu F:ITGFiles. Mainiet arī dzēšamās mapes izmēru no 10 (MB) līdz vajadzīgajam izmēram.

Kā izmantot PowerShell, lai izdzēstu tīkla koplietoto mapi

PowerShell izmantošanas process tīkla mapju dzēšanai neatšķiras no vietējo mapju dzēšanas. Vienīgā atšķirība ir tajā, kā norādāt tīkla mapi.

Papildus tam, kā norādāt tīkla mapi, jums ir jābūt arī atbilstošām atļaujām. Konkrēti, jums ir jābūt Mainīt koplietošanas atļauju.

Turklāt jums ir nepieciešama arī modificēt NTFS drošības atļauja.

Kad šīs atļauju prasības ir izpildītas, varat piekļūt tīkla mapei, izmantojot komandu Get-ChildItem. Pēc tam, lai izdzēstu mapi, ievadiet Get-ChildItem izvadi uz Remove-Item.

Lai parādītu, kā izmantot PowerShell tīkla mapes dzēšanai, es izmantošu koplietotu mapi TestShare. Mape atrodas manā Windows 11 testa datoru ar nosaukumu ITGWIN11BETA.

Lai uzskaitītu koplietotās tīkla mapes saturu, es izmantošu komandu Get-ChildItem, kā parādīts zemāk…

|_+_|

Tāpat kā vietējā mapē, komanda uzskaita visas mapes un apakšmapes koplietotajā tīkla mapē.

Kā izmantot PowerShell, lai izdzēstu mapi vai failu, sākot ar

No šī brīža pēdējo komandu varat nosūtīt tieši uz Remove-Item. Varat arī lietot filtru, pirms to pievienojat vienumam Remove-Item.

Piemēram, ja vēlaties izdzēst noteiktu mapi, varat izmantot Filtrs parametru Get-ChildItem. Varat arī pārvietot Get-ChildItem uz Kur-Object un izmantot Filtrs parametrs Kur-Object.

Visbeidzot, lai izdzēstu vienumu tīkla koplietotajā mapē, ievadiet rezultātu uz Remove-Item.

Kā izmantot PowerShell, lai izdzēstu mapi vai failu, sākot ar

Ja vēlaties dzēst mapes vai failus, kas sākas ar noteiktu nosaukumu, varat izmantot Filtrs parametru Get-ChildItem Cmdlet, lai uzskaitītu failus. Pēc tam ievadiet rezultātu uz vienumu Remove-Item.

Alternatīvi varat izmantot Dzēst() Metode programmā Get-ChildItem.

Lai ilustrētu šo piemēru, tālāk esošajā ekrānuzņēmumā es izdzēsīšu visus failus un mapes, kas sākas ar f.

Kā jau minēju iepriekš, pirmais solis ir izmantot Get-ChildItem Cmdlet ar parametru Filter. Šeit ir komandas paraugs:

|_+_| Vēl viena iespēja ir pārvietot Get-ChildItem uz Kur-Object un veikt filtrēšanu sadaļā Kur-Object .

Komandā ir uzskaitīti visi faili, kas sākas ar f. Skatiet zemāk redzamo ekrānuzņēmumu:

Kā izmantot PowerShell, lai izdzēstu failu vai failu, pēc tam ierakstiet ziņojumu žurnāla failā

Pēdējais solis, lai dzēstu visas mapes un failus, kas sākas ar f, ir izvade no

|_+_|

Kā izmantot PowerShell, lai izdzēstu mapi SoftwareDistribution

Kā jūs, iespējams, jau zināt, Windows saglabā lejupielādētos atjauninājumus mapē SoftwareDistribution. Ideālā gadījumā šī mape nav jāizdzēš.

Tomēr, ja Windows atjaunināšanas datu bāze ir bojāta, viens no veidiem, kā to labot, ir izdzēst Programmatūras izplatīšana mapi. Pirms to izdarīt, vispirms ir jāaptur Windows atjaunināšana.

Lai apturētu Windows atjaunināšanas pakalpojumu, palaidiet PowerShell kā administratoru. Pēc tam palaidiet tālāk norādīto komandu:

|_+_| Ja neapturēsiet Windows atjaunināšanas pakalpojumu, jūs NEVARĒSIT dzēst Programmatūras izplatīšana mapi

Pēc tam, lai izmantotu PowerShell, lai izdzēstu mapi SoftwareDistribution, izpildiet tālāk norādītās komandas:

|_+_|

Visbeidzot, lai atkārtoti izveidotu mapi SoftwareDistribution, restartējiet Windows atjaunināšanas pakalpojumu

|_+_|

Kā izmantot PowerShell, lai dzēstu failu vai mapi pēc tam, kad to saspiediet

Lai saspiestu failu vai mapi, izmantojiet komandu Compress-Archive, kā parādīts zemāk esošajā piemērā:

|_+_| Mainiet LiteralPath uz tā faila vai mapes avota ceļu, kuru vēlaties ZIP. Mainiet arī DestinationPath uz ceļu, kurā vēlaties saglabāt zip failu.

Kad esat saspiedis failu, izmantojiet tālāk norādīto komandu, lai to izdzēstu...

|_+_|

Kā izmantot PowerShell, lai izdzēstu failu vai failu, pēc tam ierakstiet ziņojumu žurnāla failā

Ja vēlaties izmantot PowerShell, lai izdzēstu failu vai mapi un pēc tam ziņotu par darbībām žurnālfailā, vispirms ir jādefinē žurnālfailu nosaukumi.

Šajā piemērā es vēlos, lai būtu divi žurnālfaili: 1, lai reģistrētu panākumus, un otrs, lai reģistrētu kļūdas.

Man parasti patīk izveidot savus žurnālfailus, pamatojoties uz datumu. Šajā piemērā es vispirms izveidošu datuma zīmogu un saglabāšu to mainīgajā:

|_+_|

Pēc tam es izveidošu divus žurnālfailus, pamatojoties uz datuma zīmogu…

|_+_|

Trūkst viena gabala - direktorija ceļš, lai saglabātu žurnālfailus. Lai pievienotu šo bitu, es saglabāšu ceļu mainīgajā…

|_+_|

Pēc tam pievienojiet ceļu iepriekš esošajiem žurnālfailiem…

|_+_|

Pēdējās divas komandas izveido divus žurnālfailus. Sīkāku informāciju skatiet zemāk esošajā ekrānuzņēmumā…

Tagad, kad esmu izveidojis mūsu žurnālfailus, es izveidošu PowerShell skriptu, kas izdzēsīs failus un mapes noteiktā ceļā. Pēc tam ierakstiet atskaites žurnālfailos.

Šajā piemērā es vēlos dzēst failus mapē WindowsTemp. Pirmais solis ir saglabāt ceļu uz šo mapi mainīgajā…

|_+_|

Pēc tam es izmantošu Get-ChildItem, lai uzskaitītu mapes saturu un nosūtītu izvadi uz Remove-Item.

Tomēr, lai varētu uztvert kļūdas, man ir jāiekļauj visa komanda izmēģināt, noķert.

Šeit ir pilns skripts…

|_+_| Lai izmantotu skriptu, kopējiet to uz PowerShell ISE. Pēc tam mainiet mainīgo $Path uz tās mapes ceļu, kuru vēlaties dzēst. Mainiet arī $LogPath uz mapes ceļu, kurā vēlaties saglabāt žurnālfailus.

Tieši tā — mūsu visaptverošais ceļvedis, kā izmantot PowerShell failu vai mapju dzēšanai! Ceru, ka ceļvedis jums noderēja.

Ja jums tas šķita noderīgi, lūdzu, balsojiet uz Vai šī ziņa bija noderīga? zemāk. Varat arī kopīgot detalizētas atsauksmes, izmantojot šīs lapas beigās esošo veidlapu ATSTĀT ATBILDI.

Visbeidzot, lai iegūtu vairāk PowerShell rokasgrāmatu ar piemēriem, apmeklējiet mūsu Windows PowerShell norādījumu lapu. Iespējams, jums noderēs arī mūsu BEZMAKSAS PowerShell apmācību ceļveži.