Com esborrar carpetes o fitxers amb PowerShell

18 d'agost de 2021 10262 Vistes Com esborrar carpetes o fitxers amb PowerShell

Voleu suprimir fitxers i carpetes amb PowerShell, però no sabeu com? Aquest article us donarà una guia pas a pas sobre com utilitzar PowerShell per suprimir una carpeta, un fitxer o totes les carpetes i fitxers d'una ruta especificada.





Aquesta publicació del bloc us ensenya diferents maneres d'eliminar carpetes i fitxers mitjançant PowerShell. Si us sembla interessant, seguiu llegint!



La guia comença explicant 2 maneres d'utilitzar PowerShell per suprimir carpetes i fitxers. A continuació, a la segona secció, aprendràs a corregir els errors habituals associats a la supressió de fitxers i carpetes amb PowerShell.

Finalment, la guia inclou més de 20 exemples.



Navega per temes de publicació



2 maneres d'esborrar carpeta o fitxer amb PowerShell

PowerShell ofereix dues maneres d'eliminar elements. Podeu suprimir una carpeta o un fitxer amb el mètode d'eliminació de PowerShell.

En segon lloc, podeu utilitzar Remove-Item per eliminar elements a PowerShell. A les dues subseccions següents d'aquesta secció, aprendràs a utilitzar aquests mètodes.



Mètode 1: utilitzeu Powershell Suprimeix() Mètode per esborrar una carpeta o un fitxer

Perquè PowerShell suprimi una carpeta, necessiteu el cmdlet Get-ChidItem. Get-ChildItem Cmdlet retorna els elements i elements secundaris en una ubicació especificada.



Per llistar tots els fitxers i carpetes del camí E: informes , executeu l'ordre següent:

|_+_|

Aquí teniu el resultat a PowerShell...

Com utilitzar Powershell Delete ()

Aquesta ordre té un mètode anomenat Suprimeix . Podeu utilitzar el Suprimeix Mètode per eliminar carpetes i fitxers.

Per veure els mètodes disponibles a l'ordre anterior, canalitzeu l'ordre al cmdlet Get-Member.

|_+_|

L'ordre va retornar dos tipus de propietats. 1 , System.IO.DirectoryInfo (vegeu la primera imatge a continuació). 2 , System.IO.FileInfo . El primer es relaciona amb les carpetes del camí, mentre que el segon es relaciona amb els fitxers.

Mireu bé les dues imatges. Observeu que cadascun d'ells té un Mètode anomenat Suprimeix . Podeu utilitzar el Suprimeix Mètode a PowerShell per eliminar una carpeta o un fitxer.

A la següent subsecció, mostraré com utilitzar-lo Suprimeix Mètode.

Com utilitzar Suprimeix () Mètode a Powershell per eliminar una carpeta o un fitxer

La sintaxi de la Suprimeix El mètode és:

|_+_|

Objecte és la carpeta de detalls del fitxer que retorna el cmdlet Get-ChidItem. A més, Suprimeix és el mètode seguit habitualment per l'operador ().

Per facilitar la comprensió de l'ordre de sintaxi anterior, aquí teniu l'ordre original Get-ChildItem:

|_+_|

i el resultat...

Com utilitzar Powershell Delete ()

D'acord amb el que he explicat fins ara, en teoria, podeu utilitzar el mètode d'eliminació de PowerShell per eliminar la carpeta anomenada informes executant l'ordre següent:

|_+_|

Tanmateix, l'última ordre retorna el missatge d'error El directori no està buit.

Per resoldre aquest problema, necessito una ordre que retorni tots els fitxers i carpetes i subcarpetes del camí. Aleshores, he de canalitzar el resultat al bucle aForEach.

Aquí teniu l'ordre modificada:

|_+_|

Aquí teniu l'ordre a PowerShell. Tots els fitxers s'han suprimit del camí especificat.

com fer un canal afk de discòrdia

L'última ordre suprimeix els fitxers de la carpeta especificada i les seves subcarpetes. Tanmateix, no elimina les carpetes.

Per eliminar les carpetes, executeu l'ordre següent:

|_+_|

Per confirmar-ho E: informes ara està buit, tornaré a executar l'ordre Get-ChildItem.

|_+_|

No retorna res!

Abans de passar a la següent secció, permeteu-me explicar com aquesta ordre va suprimir tots els fitxers i subcarpetes.

|_+_|

Get-ChildItem té dos paràmetres anomenats Incloure i Recurs . A l'ordre, he utilitzat -Incloure *.* per dir-li a PowerShell que inclogui tots els fitxers al resultat.

Recurs , d'altra banda, diu a Get-ChildItem que torni totes les carpetes i subcarpetes.

A la segona part de l'ordre, vaig afegir Get-ChildItem a la instrucció ForEach . ForEach fa un bucle a través de tots els objectes retornats per Get-ChildItem i utilitza el Suprimeix Mètode per eliminar-los.

Com ja he esmentat quan vaig presentar aquesta secció, PowerShell té un cmdlet anomenat Elimina-element concretament. També podeu utilitzar aquest cmdlet de PowerShell per suprimir una carpeta o un fitxer.

La següent secció tracta sobre com utilitzar-la Elimina-element . Segons la meva experiència, utilitzant Elimina-element és millor que utilitzar Suprimeix() Mètode.

Mètode 2: utilitzeu Powershell Elimina-element Cmdlet per esborrar una carpeta o un fitxer

Per esborrar un fitxer o carpeta amb Elimina-element encara heu d'utilitzar el cmdlet de PowerShell, Get-ChildItem. A continuació, conduïu el resultat a Elimina-element .

Pots córrer Elimina-element sense Get-ChildItem . Tanmateix, des de la meva experiència, per a la majoria de les circumstàncies, el millor funciona enumerar l'element amb Get-ChildItem . A continuació, conduïu la sortida a Elimina-element .

En el meu primer exemple d'aquesta secció, vull utilitzar PowerShell per eliminar la carpeta anomenada ITGServer2. Vegeu la captura de pantalla a continuació.

Mètode 2: utilitzeu el cmdlet Remove-Item de Powershell per suprimir una carpeta o un fitxer

Aquí teniu l'ordre de PowerShell que suprimirà la carpeta...

|_+_|

Després d'executar l'ordre anterior, la carpeta ha desaparegut!

Mètode 2: utilitzeu el cmdlet Remove-Item de Powershell per suprimir una carpeta o un fitxer

En el meu segon exemple, vull suprimir les carpetes i subcarpetes a E:informes. La comanda següent farà la feina...

|_+_|

Després d'executar l'última ordre, totes les carpetes de la carpeta especificada desapareixen!

Mètode 2: utilitzeu el cmdlet Remove-Item de Powershell per suprimir una carpeta o un fitxer

Com corregir errors comuns amb Powershell Elimina la carpeta o el fitxer

Com corregir errors comuns amb Powershell Elimina la carpeta o el fitxer

Quan executeu l'ordre Remove-Item PowerShell per suprimir una carpeta o un fitxer, pot tornar alguns errors. Aquesta secció tracta alguns d'aquests errors i com solucionar-los.

Crec que és millor parlar de solucions a aquests errors comuns abans de submergir-nos en alguns exemples reals d'administradors de sistemes de com utilitzar PowerShell per suprimir carpetes o fitxers.

Com arreglar l'error d'eliminació de carpeta o accés a fitxers de Powershell denegat

Si executeu Remove-Item per suprimir un fitxer o una carpeta i rebeu un missatge d'error Accés denegat, proveu el següent:

  1. Canviar el propietari d'un fitxer o carpeta: utilitzeu els codis següents per canviar el propietari d'un fitxer o carpeta a l'administrador local

Per executar aquesta ordre, obriu PowerShell com a administrador, en cas contrari, l'última ordre fallarà.

|_+_| Canvieu el camí de la carpeta, F:ITGFilesTextfiles al camí complet del vostre fitxer o carpeta

Un cop hàgiu canviat el propietari per l'administrador local, proveu d'executar la supressió del fitxer o la carpeta de nou amb PowerShell. Si no funciona, proveu aquestes solucions.

  1. Afegeix el Força paràmetre a Remove-Item
  2. Proveu el mètode Delete(). Si no sabeu com utilitzar el mètode PowerShell Delete(), consulteu la secció Com utilitzar el mètode Delete() a Powershell per suprimir una carpeta o un fitxer (l'enllaç s'obre en una pestanya diferent del navegador) d'aquesta guia.

Com arreglar la carpeta d'eliminació de Powershell no es pot eliminar perquè no és un error buit

Si rebeu no es pot eliminar perquè no és un error buit quan executeu l'ordre:

|_+_|

Proveu d'utilitzar Get-ChildItem amb el paràmetre Recurse. A continuació, conduïu-lo a Remove-Item amb el Força i Recurs paràmetres.

Aquí hi ha una comanda d'exemple:

|_+_|

Alternativament, podeu executar Get-ChildItem i especificar asteriscs darrere de l'última barra inclinada del camí. Això elimina tot el contingut de la carpeta.

Per exemple, si executo l'ordre...

|_+_|

... i rebre No es pot eliminar perquè no està buit, per solucionar el problema, primer executaré l'ordre següent:

|_+_|

L'última ordre elimina només els elements d'E: eports. Finalment, per eliminar la carpeta (que ara està buida), executaré l'ordre següent...

|_+_|

Com arreglar la carpeta d'eliminació de Powershell utilitzada per un altre error de procés

Com arreglar la carpeta d'eliminació de Powershell

Si rebeu Remove-Item retorna el missatge d'error perquè està sent utilitzat per un altre procés, heu d'incloure el paràmetre Força.

Aquí teniu l'original que va retornar el missatge d'error...

|_+_|

Per solucionar aquest problema, executeu l'ordre següent per a un fitxer:

|_+_|

L'última ordre ha suprimit correctament el fitxer...

Com arreglar l'error de suprimir la carpeta o la carpeta de fitxers o el nom del fitxer de Powershell massa llarg

Sembla ser una limitació coneguda amb PowerShell.

Tanmateix, per solucionar aquest problema, podeu utilitzar el a tu comanda cmd. A continuació, conduïu el resultat a l'ordre Elimina-element.

Aquí teniu un exemple...

|_+_| L'ordre dir és l'equivalent cmd del Get-ChildItem de PowerShell.

Com solucionar l'error de denegació de l'accés a la carpeta d'eliminació de Powershell al camí

L'ordre d'eliminació d'element de PowerShell genera un missatge d'error Access To The Path Is Denied si intenteu suprimir una carpeta que no teniu permís per suprimir.

El motiu pel qual rebeu aquest missatge d'error és que no teniu accés a la carpeta. Abans d'executar l'ordre Remove-Item, executeu les ordres següents per concedir als administradors locals accés a la carpeta.

Aquesta correcció suposa que el compte que heu utilitzat per iniciar la sessió és membre del grup d'administradors locals. Abans d'executar l'ordre següent a PowerShell ISE, canvieu el camí F:ITGFilesTextfiles al camí de la carpeta que esteu intentant suprimir. |_+_|

Un cop hàgiu acabat d'executar l'script anterior, torneu a executar l'ordre Remove-Item.

Més exemples de fitxers o carpetes d'eliminació de Powershell

Més exemples de fitxers o carpetes d'eliminació de Powershell

Aquesta darrera secció de la guia cobreix diversos exemples de com utilitzar PowerShell per suprimir fitxers o carpetes.

Com esborrar una carpeta o un fitxer amb PowerShell si existeix

Com que aquest exemple té una condició (si la carpeta o el fitxer existeix), la primera ruta de l'ordre comprova si l'element existeix.

Podeu utilitzar el Camí de prova comanda per comprovar si existeix una carpeta o fitxer. A continuació, utilitzeu la instrucció condicional IF per eliminar la carpeta o el fitxer si existeix.

Podem combinar les dues ordres al bloc d'instruccions IF...

En aquest exemple, vull suprimir una carpeta anomenada ITGServer a la ruta F:ITGFilesTextfiles, si la carpeta existeix.

Aquí teniu l'ordre...

|_+_|

En aquest exemple, aquesta carpeta existeix i s'ha suprimit. Tanmateix, si provem l'ordre amb un fitxer que no existeix, rebrem el missatge al fitxer Altrament bloc de la instrucció IF.

Com esborrar una carpeta i les seves subcarpetes amb PowerShell

Per suprimir una carpeta i totes les subcarpetes, executeu el Elimina-element comanda amb el Recurs i Força paràmetres.

Aquí teniu un exemple...

|_+_|

Com esborrar una carpeta o un fitxer més antics de x dies (o segons la data) amb PowerShell

En aquest exemple, com que volem suprimir fitxers o carpetes més antigues de x dies, el primer pas és obtenir la referència dels dies. Això es fa amb l'ordre Get-Date.

Tanmateix, com que volem suprimir elements de més de x dies, hem d'especificar x dies com a valor negatiu. Per exemple, per suprimir tots els fitxers o carpetes de més de 7 dies, obteniu la referència dels dies amb l'ordre següent:

|_+_|

A continuació, utilitzeu Get-ChildItem comanda per obtenir el LastWriteTime propietat de l'article. El LastWriteTime La propietat registra la darrera data en què es va modificar una carpeta o un fitxer.

A més de la LastWriteTime propietat, l'ordre Get-ChildItem retorna una altra propietat anomenada PSIContainer . La propietat PSIContainer diferencia un fitxer d'una carpeta.

Si PSIContainer és cert, vol dir que l'element és una carpeta. D'altra banda, si PSIContainer és fals, vol dir que l'element és un fitxer.

Abans d'introduir la propietat LastWriteTime, primer permeteu-me executar una ordre Get-ChildItem i filtrar per la propietat PSIContainer:

|_+_|

Aquesta ordre ha retornat un únic objecte anomenat ITG perquè aquesta és l'única carpeta del camí F:ITGFilesTextfiles.

Alternativament, per llistar només fitxers al camí, executeu l'ordre següent:

|_+_|

Aquesta vegada, perquè he especificat per $ _. PSIConta baixa -eq $FALSE , PowerShell retorna totes les carpetes que no són.

Ara que enteneu com llistar carpetes o fitxers en una carpeta, introduïm la propietat LastWriteTime. Com he esmentat anteriorment, la darrera data i hora en què es va modificar l'element es registren a la propietat LastWriteTime.

Aquestes ordres inclouen la propietat LastWriteTime:

|_+_|

La primera ordre retorna totes les carpetes que es van modificar per darrera vegada abans de la referència del dia desada a la variable $DaysRef. En aquest exemple, la referència del dia és de 7 dies.

com arrelar lg v20 t mobile

Al contrari, la segona ordre retorna tots els fitxers modificats els últims x dies, on x dies és igual a 7 en aquest exemple.

La segona i última etapa d'aquest exemple que utilitza PowerShell per suprimir carpetes de fitxers més antigues de x dies és canalitzar l'ordre Where-Object a Remove-Item.

L'script següent completa la tasca d'eliminar els fitxers i la carpeta...

|_+_| Si cap fitxer o carpeta compleix els criteris de LastWriteTime no se suprimirà cap.

Com utilitzar PowerShell per eliminar només el contingut de la carpeta

En aquest exemple, suprimiré el contingut de F:ITGFilescarpeta però no la carpeta en si.

Si voleu suprimir només el contingut d'una carpeta però conservar la carpeta, executeu l'ordre Elimina-Item tal com es mostra a l'exemple següent:

|_+_|

El truc és afegir un asterisc després de l'última barra al final del camí de la carpeta.

El Recurs El paràmetre elimina totes les carpetes i subcarpetes del camí especificat. En aquest exemple, F:ITGFilescarpeta*

Com utilitzar PowerShell per suprimir carpetes i continguts sense confirmació ni sol·licitud

El truc per suprimir una carpeta i contingut sense demanar-vos confirmació és afegir-hi Força i Confirmeu:$fals paràmetres al Elimina-element comandament.

Si executo l'ordre següent sense afegir-hi Confirmeu:$fals paràmetre, podré confirmar que vull eliminar la carpeta i tot el seu contingut.

|_+_|

Tanmateix, si no vull rebre aquest missatge de confirmació, inclouré el paràmetre Confirm:$false.

|_+_|

L'ordre s'ha d'executar sense demanar confirmació de l'acció. A més, tingueu en compte que el paràmetre que atura el missatge de confirmació és Confirmeu:$fals .

Si l'última ordre encara demana confirmació, primer executeu el fitxer Get-ChildItem comandament. A continuació, conduïu la sortida a l'ordre Remove-Item tal com es mostra a continuació:

|_+_|

Malauradament, l'última ordre no elimina la carpeta de la carpeta principal. Per suprimir la carpeta principal i tot el seu contingut, afegiu el paràmetre -filter a l'ordre Get-ChildItem tal com es mostra a aquesta ordre:

|_+_|

Com utilitzar PowerShell per suprimir una carpeta o un fitxer per a la paperera de reciclatge

Si suprimiu una carpeta o un fitxer amb l'ordre Remove-Item, s'eliminarà permanentment. En altres paraules, la carpeta no es mou a la Paperera de reciclatge.

Malauradament, no hi ha cap cmdlet de PowerShell per eliminar una carpeta o un fitxer a la Paperera de reciclatge. Estava intentant crear una funció personalitzada per a aquesta tasca. Tanmateix, he trobat una funció existent creada per a stackoverflow.com col·laborador.

Per posar-lo a disposició dels nostres lectors, he penjat una còpia de la funció a S Zone. Per descarregar i utilitzar la funció, seguiu els passos següents:

  1. Feu clic a descarregar Remove-ItemToRecycleBin.zip per descarregar la funció
  2. A continuació, descomprimiu el fitxer zip descarregat. Quan descomprimiu el fitxer, es crearà una carpeta anomenada Remove-ItemToRecycleBin.
  3. Finalment, copieu la carpeta a la carpeta del motlle de perfil de Windows 10 PowerShell. La carpeta es troba al camí següent
|_+_| és el vostre nom de perfil de Windows 10. Normalment es troba a C:Usuaris. Tanmateix, si no es troba a la unitat C, mireu la unitat D o E.

Un cop hàgiu copiat la carpeta del mòdul, podeu utilitzar-la com qualsevol altra ordre de PowerShell. Per il·lustrar com funciona, suprimiré E: eports a la Paperera de reciclatge.

Abans d'executar l'ordre, però, aquí teniu una captura de pantalla de la meva paperera de reciclatge buida.

Com utilitzar PowerShell per suprimir una carpeta o un fitxer per a la paperera de reciclatge

Ara, per utilitzar PowerShell per suprimir la carpeta, E:informes a la Paperera de reciclatge, executaré l'ordre següent:

|_+_|

Després d'executar l'ordre anterior, la carpeta d'informes es mourà a la Paperera de reciclatge. Vegeu la captura de pantalla a continuació...

Com utilitzar PowerShell per suprimir una carpeta o fitxer i excloure altres carpetes o fitxers

L'ordre Remove-Item té un Excloure paràmetre. Aquest paràmetre s'utilitza per excloure una carpeta o un fitxer que no voleu suprimir.

Aquí teniu un exemple. Vull suprimir totes les carpetes del camí, F:ITGFilesTextfiles5. Tanmateix, no vull esborrar la carpeta 3.

Com utilitzar PowerShell per suprimir una carpeta o fitxer i excloure altres carpetes o fitxers

Com podeu veure a la captura de pantalla anterior, la carpeta té tant carpetes com fitxers.

Per suprimir només carpetes, primer he d'utilitzar l'ordre Get-ChildItem per llistar tots els elements del camí. A continuació, canalitzeu la sortida a l'Objecte On i filtreu per propietat PSIContainer.

|_+_|

Després d'executar l'última ordre, s'eliminen totes les carpetes però no la carpeta 3. A més, observeu que els fitxers de F:ITGFilesTextfiles5 no s'han eliminat.

El motiu pel qual només es van suprimir les carpetes és que dins de On-Objecte bloc, he filtrat per {$_.PSIsContainer -eq $TRUE}. La propietat PSIContainer especifica que un objecte és una carpeta.

Seguint endavant, l'element Eliminar també té un paràmetre anomenat Inclou. Aquest paràmetre realitza l'acció contrària al paràmetre Exclou.

Puc aconseguir el mateix resultat que l'última ordre substituint Exclou per Inclou. Tanmateix, a diferència de l'ordre anterior, ara enumeraré les carpetes que vull suprimir.

Aquí hi ha una ordre de mostra que elimina només la carpeta 1 de F:ITGFilesTextfiles5.

|_+_|

Després d'executar l'ordre anterior, notareu que només s'ha suprimit la carpeta 1.

Si voleu suprimir fitxers en lloc de carpetes, canvieu $_.PSIsContainer -eq $TRUE a $_.PSIsContainer -eq $FALSE

Com utilitzar PowerShell per suprimir una carpeta encara que no estigui buida

Si voleu suprimir una carpeta amb PowerShell, encara que la carpeta no estigui buida, incloeu el fitxer Força i Recurs paràmetres. Aquí teniu un exemple.

|_+_|

Com utilitzar PowerShell per suprimir carpetes buides de més de X dies

Seguiu els passos següents per utilitzar PowerShell per suprimir carpetes buides de més de x dies...

En aquest exemple, vull suprimir carpetes de més de 90 dies del meu perfil de Windows 10, C:UsuarisVictorA.

  1. Utilitzeu Get-ChildItems per llistar només les carpetes al camí especificat:
|_+_|

L'ordre enumera totes les carpetes al camí especificat. Si recordeu, a les ordres anteriors d'aquesta guia, hem utilitzat per tornar carpetes On-Objecte per filtrar PSIContainer propietat. Tanmateix, decideixo aconseguir el mateix resultat amb el Directori paràmetre de Get-ChildItem .

  1. A continuació, canalitzeu el resultat de l'ordre Get-ChildItem a Where-Object. A l'ordre On-Object, afegiu un filtre que només retorni carpetes buides. Aquí teniu l'ordre...
|_+_|
  1. Ara, hem d'afegir el camí que retorna les carpetes de la llista anterior amb més de 90 dies. Això implica dues ordres.

A la primera ordre, utilitzaré Get-Date per determinar la data del període de temps. A l'exemple, fa 90 dies. Per facilitar-ho, desaré el resultat en una variable anomenada $DaysRef.

|_+_|

Aleshores, a la segona ordre, inclouré un altre filtre a la part On-Objecte de l'última ordre.

|_+_|

Aquí teniu el resultat de l'última comanda...

Com utilitzar PowerShell per suprimir carpetes buides de més de X dies

Com podeu veure, l'última ordre només retorna dues carpetes buides. Vaig executar aquesta comanda el 4 d'agost de 2021. Com podeu veure, el LastWriteTime de les dues carpetes és el 16/06/2021 a les 16:29.

Per als lectors dels EUA, aquesta data és el 16 d'agost de 2021 (16/06/2021)

Això vol dir que l'última vegada que es van modificar les dues carpetes és més de 90 dies des de quan vaig executar l'ordre.

  1. Finalment, per suprimir aquestes carpetes buides de més de 90 dies, canalitzeu l'última ordre a l'ordre Remove-Item PowerShell.
|_+_|

Com utilitzar PowerShell per suprimir la carpeta del perfil d'usuari

Per suprimir la carpeta de perfils d'usuari amb les ordres d'aquesta secció, HEU de obriu PowerShell com a administrador . En cas contrari, podeu rebre un missatge d'error d'accés denegat

El primer pas per utilitzar PowerShell per suprimir la carpeta del perfil d'un usuari és determinar el camí a la carpeta de l'usuari. PowerShell té una variable ambiental que retorna la ruta al directori d'instal·lació de Windows.

La variable és...

|_+_|

Aquesta ordre retorna un camí com C:WINDOWS. Mentrestant, la carpeta Usuaris (que conté totes les carpetes de perfils d'usuari) es troba a l'arrel de la unitat on està instal·lat Windows.

En el meu exemple, la carpeta Usuaris es troba a la unitat C:WINDOWS.

Tanmateix, per retornar C:, des de C:WINDOWS, utilitzeu el mètode dividit tal com es mostra a l'ordre següent.

|_+_|

L'ordre retorna C: i WINDOWS. El següent pas és tornar C: aquest és el primer element de la matriu.

Com utilitzar PowerShell per suprimir la carpeta del perfil d'usuari

Per accedir a aquest element, incloeu aquest [0] a l'última ordre tal com es mostra a continuació.

|_+_|

Ara tenim C:

Com utilitzar PowerShell per suprimir la carpeta del perfil d'usuari

He esmentat anteriorment que tots els perfils d'usuari es troben a la carpeta Usuaris. Des de l'última ordre, afegiré Usuaris al retorn C:Usuaris

|_+_|

Ara, tenim el camí complet a la carpeta Usuaris.

A la següent comanda, faré servir Get-ChildItem per llistar totes les carpetes de perfils d'usuari a la carpeta Usuaris. Tanmateix, per evitar errors, primer desaré l'última ordre en una variable.

|_+_|

Ara, puc utilitzar Get-ChildItem per tornar totes les carpetes de perfils d'usuari a la carpeta Usuaris. Aquí teniu l'ordre:

|_+_|

I el resultat a PowerShell...

Com utilitzar PowerShell per suprimir la carpeta del perfil d'usuari

El bit final serà canalitzar l'última ordre a Remove-Item. Tanmateix, heu d'utilitzar el paràmetre Filtre per eliminar només la carpeta del perfil d'usuari de la qual voleu desfer-vos.

En aquest exemple, vull suprimir la carpeta del perfil d'usuari anomenada victo i totes les seves subcarpetes

Aquí teniu l'ordre final que utilitza PowerShell per eliminar la carpeta de perfils d'usuari:

|_+_|

Després d'executar aquesta ordre, ara si executeu l'ordre següent, el perfil suprimit ja no apareixerà a la llista.

|_+_|

Com utilitzar PowerShell per eliminar la carpeta de les dades de l'aplicació

PowerShell té dues variables d'entorn per a la carpeta AppData d'un usuari connectat.

|_+_|

La variable d'entorn que decidiu utilitzar depèn de la ubicació de la carpeta que voleu suprimir. Tanmateix, si no esteu segur de la ubicació de la carpeta que voleu suprimir, podeu cercar ambdues ubicacions.

Per aconseguir-ho, desaré les dues variables d'entorn en una variable anomenada $appdatafolders...

|_+_|

Aleshores, utilitzaré el bucle ForEach per comprovar ambdues ubicacions. Aquí teniu el codi que fa aquesta feina...

|_+_| Vaig incloure el paràmetre WhatIf perquè PowerShell no suprimeixi la carpeta. En canvi, PowerShell mostrarà l'acció que havia de realitzar si no s'incloïa el paràmetre WhatIf.

Aquí teniu el resultat de l'ordre a PowerShell. La imatge de la dreta de la captura de pantalla és la carpeta de la meva carpeta AppData.

Com utilitzar PowerShell per eliminar la carpeta de les dades de l'aplicació

Com utilitzar PowerShell per eliminar la carpeta oculta

L'ordre Get-ChildItem té un paràmetre anomenat Hidden. Si voleu llistar carpetes amagades en una carpeta especificada, incloeu el paràmetre Ocult.

A la meva captura de pantalla a continuació, tinc 3 carpetes (no o amagades).

Per demostrar com utilitzar PowerShell per eliminar carpetes ocultes, amagaré Textfiles3. Ara, la carpeta està amagada.

Com utilitzar PowerShell per eliminar la carpeta oculta

Per llistar la carpeta oculta, executaré l'ordre següent...

|_+_|

Com era d'esperar, l'ordre enumera només la carpeta oculta.

Per eliminar la carpeta oculta amb PowerShell, ara canalitzaré l'última ordre a l'ordre Remove-Item.

|_+_|

Per confirmar que s'ha suprimit la carpeta, he activat l'atribut Mostra els elements ocults a l'Explorador de fitxers.

Com utilitzar PowerShell per eliminar la carpeta oculta

Com utilitzar PowerShell per suprimir fitxers però mantenir l'estructura de carpetes

Pot ser que hi hagi casos en què vulgueu suprimir tots els fitxers d'una carpeta, incloses les seves subcarpetes, però conservant l'estructura de la carpeta.

Per aconseguir-ho, heu d'executar l'ordre Get-ChildItem i especificar el paràmetre File. Quan utilitzeu el paràmetre Fitxer, Get-ChildItem enumera només els fitxers de la carpeta especificada.

Per demostrar com funciona això, he creat una estructura de carpetes que es mostra a la captura de pantalla següent:

Com utilitzar PowerShell per suprimir fitxers però mantenir l'estructura de carpetes

Com es veu a la captura de pantalla, la carpeta1 té dues subcarpetes, carpeta2 i carpeta3. A més, la carpeta 2 i la carpeta 3 tenen alguns fitxers.

Per utilitzar Get-ChildItem per mostrar només fitxers a la ruta, F:ITGFilesfolder1, executaré l'ordre següent:

|_+_|

L'ordre només mostra fitxers als dos camins, F:ITGFilesfolder1folder2 i Directori: F:ITGFilesfolder1folder3

Finalment, per suprimir els fitxers però mantenir l'estructura de carpetes, canalitzeu l'última ordre a Remove-Item...

|_+_|

L'ordre elimina tots els fitxers, però deixa l'estructura de carpetes intacta!

Com utilitzar PowerShell per suprimir la carpeta de claus del registre

L'ordre per llistar i suprimir una carpeta de claus de registre és la mateixa que s'utilitza per suprimir carpetes normals.

Si heu estat llegint aquesta guia des del principi, hem utilitzat dues ordres fins ara:

Get-ChildItem : s'utilitza per llistar elements en un camí especificat
Elimina-element : s'utilitza per eliminar els fitxers/carpetes enumerats per Get-ChildItem

L'única diferència, però, és com accediu a les carpetes de claus del registre.

Hi ha diverses maneres de formatar una clau de registre per utilitzar-la a les ordres Get-ChildItem i Remove-Item. Tanmateix, per a aquest exemple, utilitzaré el mètode següent:

|_+_|

En aquest exemple, vull accedir a la carpeta de claus del registre, HKEY_CURRENT_USERControl PanelDesktop. Com podeu veure al format de comandament anterior, per fer-ho, he afegit la paraula registre, seguida de dos dos punts, ::

Per obtenir més informació sobre com funciona PowerShell amb el registre de Windows, llegiu la nostra guia: Com utilitzar PowerShell per llegir el valor del registre .

Mou l'exemple al pas següent, per llistar els elements de la carpeta de claus del registre anterior, executeu l'ordre següent:

|_+_|

L'ordre mostra totes les carpetes de subclau a la carpeta de claus de registre especificada.

Si vull suprimir una carpeta especificada, primer executaré Get-ChildItem. Aleshores, canalitzaré la sortida a Select-Object

|_+_|

L'ordre anterior mostra el camí complet a totes les subclaus de la meva carpeta de claus de registre original:

Com utilitzar PowerShell per suprimir la carpeta de claus del registre

Aleshores, per eliminar les subclaus, canalitzaré l'última ordre a Remove-Item. Tanmateix, per suprimir una carpeta de subclau específica, primer canalitzaré l'última ordre a On-Objecte i filtraré pel nom de la subclau que vull suprimir:

|_+_|

L'última ordre ara només retorna la ruta especificada de la carpeta de la subclau del registre.

Finalment, per suprimir aquesta subclau de carpeta amb PowerShell, canalitzeu l'última ordre a Remove-Item. Abans, però, heu de modificar la clau de registre i canalitzar-la a Get-Item.

Per facilitar-ho, desaré l'última ordre en una variable

|_+_|

A continuació, formateu-lo per a l'ordre Get-Item

|_+_|

Finalment, canalitzeu el camí de la clau amb format a Get-Item...

|_+_|

Ara, podem suprimir el valor enviant l'última ordre a Remove-Item (he inclòs el paràmetre whatif perquè NO vull suprimir aquesta clau)

|_+_|

I aquí teniu el resultat...

Com utilitzar PowerShell per suprimir la carpeta de claus del registre

Com utilitzar PowerShell per suprimir el nom de la carpeta Com

Al llarg d'altres exemples d'aquesta guia, he mostrat com utilitzar PowerShell per suprimir un nom de carpeta mitjançant el filtre M'agrada. A més, com ja es mostra en exemples anteriors, aquest filtre es pot aplicar a l'ordre Get-ChildItem o a l'ordre Where-Object.

Per exemple, per suprimir tots els fitxers i carpetes amb noms com el fitxer a la ruta F:ITGFiles, puc utilitzar l'ordre següent:

ko-fi o patreon
|_+_| Perquè el filtre funcioni, és possible que hàgiu d'utilitzar un comodí. En aquest exemple, faig servir el comodí asterisc.

Puc aconseguir el mateix resultat canalitzant Get-ChildItem a Where-Object. A continuació, realitzeu el filtratge a On-Object.

|_+_|

L'ordre retorna el mateix resultat que l'última ordre!

Com utilitzar PowerShell per suprimir el nom de la carpeta Com

Com passa amb altres exemples d'aquesta guia, per suprimir la carpeta, canalitzeu la sortida de qualsevol de les dues ordres a Remove-Item.

Com utilitzar PowerShell per suprimir carpetes més grans que una mida especificada

Si voleu suprimir carpetes més grans que una mida especificada amb PowerShell, primer heu de calcular les mides de les carpetes al camí especificat.

Tanmateix, heu d'enumerar el camí complet a les subcarpetes al camí de carpeta especificat. Per llistar el camí complet a totes les subcarpetes d'una ruta de carpeta, executeu una ordre semblant a la següent:

|_+_|

L'ordre enumera els camins complets a totes les subcarpetes del camí de la carpeta, F:ITGFiles

Utilitzant el profunditat paràmetre amb un valor 0, en lloc de Recurs assegura que només es retornin les subcarpetes del primer nivell. Com utilitzar PowerShell per suprimir la carpeta compartida de la xarxa

Ara que tinc el camí complet a la subcarpeta, utilitzaré aquesta informació per calcular la mida de cada subcarpeta. Tanmateix, per tenir el camí complet a les subcarpetes (necessari per eliminar-lo més tard) i la mida, he de crear un script personalitzat.

Aquí teniu el guió complet:

|_+_|

I aquí teniu el resultat de l'ordre a PowerShell ISE.

Com podeu veure a la captura de pantalla, l'script només retorna un fitxer que compleix els criteris de mida (10 MB).

Òbviament, tenim un darrer bit per completar la tasca: esborrar el fitxer. Per eliminar el fitxer que compleix el requisit de mida, he modificat la instrucció IF tal com es mostra en aquest script...

|_+_|

Per tant, aquí teniu l'script final que elimina les carpetes més grans que un valor especificat

|_+_| Per utilitzar l'script, canvieu el camí F:ITGFiles a la línia 1 de Get-ChildItem. A més, canvieu la mida de la carpeta que voleu suprimir, de 10 (en MB) a la mida necessària.

Com utilitzar PowerShell per suprimir la carpeta compartida de la xarxa

El procés d'utilitzar PowerShell per suprimir carpetes de xarxa no és diferent de l'eliminació de carpetes locals. L'única diferència és com s'especifica una carpeta de xarxa.

A més de la manera d'especificar una carpeta de xarxa, també cal que tingueu els permisos adequats. Concretament, heu de tenir el permís de Canvi de compartició.

A més, també heu de tenir el permís de seguretat de Modificar NTFS.

Un cop es compleixin aquests requisits de permisos, podeu accedir a la carpeta de xarxa amb l'ordre Get-ChildItem. A continuació, per suprimir la carpeta, canalitzeu la sortida de Get-ChildItem a Remove-Item.

Per demostrar com utilitzar PowerShell per suprimir una carpeta de xarxa, faré servir una carpeta compartida anomenada TestShare. La carpeta es troba al meu Windows 11 PC de prova anomenat ITGWIN11BETA.

Per llistar el contingut de la carpeta de xarxa compartida, utilitzaré l'ordre Get-ChildItem tal com es mostra a continuació...

|_+_|

Igual que una carpeta local, l'ordre enumera totes les carpetes i subcarpetes de la carpeta de xarxa compartida.

Com utilitzar PowerShell per suprimir una carpeta o fitxer que comenci per

A partir d'aquest punt, podeu canalitzar l'última ordre directament a Remove-Item. Alternativament, apliqueu algun filtre abans de canalitzar-lo a Remove-Item.

Per exemple, si voleu suprimir una carpeta específica, podeu utilitzar el Filtre paràmetre a Get-ChildItem. Alternativament, podeu canalitzar Get-ChildItem a Where-Object i utilitzar el Filtre paràmetre a On-Object.

Finalment, per suprimir l'element a la carpeta compartida de xarxa, canalitzeu el resultat a Elimina-Item.

Com utilitzar PowerShell per suprimir una carpeta o fitxer que comenci per

Si voleu suprimir carpetes o fitxers que comencen amb un nom determinat, podeu utilitzar el Filtre paràmetre al cmdlet Get-ChildItem per llistar els fitxers. A continuació, introduïu el resultat a Remove-Item.

Alternativament, podeu utilitzar el Suprimeix() Mètode a Get-ChildItem.

Per il·lustrar aquest exemple, suprimiré tots els fitxers i carpetes que comencen per f a la captura de pantalla següent.

Com he esmentat anteriorment, el primer pas és utilitzar el cmdlet Get-ChildItem amb el paràmetre Filter. Aquí hi ha una comanda d'exemple:

|_+_| Una altra opció podria ser canalitzar Get-ChildItem a Where-Object i realitzar el filtratge a Where-Object .

L'ordre enumera tots els fitxers que comencen per f. Vegeu la captura de pantalla a continuació:

Com utilitzar PowerShell per suprimir un fitxer o fitxer i, a continuació, escriure un informe a un fitxer de registre

El pas final per suprimir totes les carpetes i fitxers que comencen per f és canalitzar la sortida de

|_+_|

Com utilitzar PowerShell per suprimir la carpeta de distribució de programari

Com ja sabeu, Windows emmagatzema les actualitzacions descarregades a la carpeta SoftwareDistribution. Idealment, no haureu d'esborrar aquesta carpeta.

Tanmateix, si la base de dades de Windows Update està corrupta, una manera de solucionar-ho és suprimir-la Distribució de programari carpeta. Abans de fer-ho, però, primer heu d'aturar l'actualització de Windows.

Per aturar el servei de Windows Update, executeu PowerShell com a administrador. A continuació, executeu l'ordre següent:

|_+_| Si no atureu el servei de Windows Update, NO podreu suprimir-lo Distribució de programari carpeta

A continuació, per utilitzar PowerShell per suprimir la carpeta SoftwareDistribution, executeu les ordres següents:

|_+_|

Finalment, per recrear la carpeta SoftwareDistribution, reinicieu el servei Windows Update

|_+_|

Com utilitzar PowerShell per suprimir un fitxer o una carpeta després de comprimir-lo

Per comprimir un fitxer o carpeta, utilitzeu l'ordre Comprimir-Arxiu tal com es mostra a l'exemple següent:

|_+_| Canvieu LiteralPath al camí d'origen del fitxer o carpeta que voleu comprimir. A més, canvieu DestinationPath pel camí que voleu desar el fitxer comprimit.

Un cop hàgiu comprimit el fitxer, utilitzeu l'ordre següent per eliminar-lo...

|_+_|

Com utilitzar PowerShell per suprimir un fitxer o fitxer i, a continuació, escriure un informe a un fitxer de registre

Si voleu utilitzar PowerShell per suprimir un fitxer o carpeta i, a continuació, informar de les accions a un fitxer de registre, primer heu de definir els noms dels fitxers de registre.

En aquest exemple, vull tenir dos fitxers de registre, 1 per registrar l'èxit i el segon per registrar errors.

Normalment m'agrada crear els meus fitxers de registre basats en la data. Per a aquest exemple, primer crearé un segell de data i el desaré en una variable:

|_+_|

Aleshores, crearé dos fitxers de registre basats en el segell de la data...

|_+_|

Falta una peça: la ruta del directori per desar els fitxers de registre. Per afegir aquest bit, desaré el camí en una variable...

|_+_|

A continuació, afegiu el camí als fitxers de registre anteriors...

|_+_|

Les dues últimes ordres creen dos fitxers de registre. Per obtenir més informació, consulteu la captura de pantalla a continuació...

Ara que he creat els nostres fitxers de registre, ara crearé un script de PowerShell que suprimirà fitxers i carpetes en un camí especificat. A continuació, escriviu informes als fitxers de registre.

En aquest exemple, vull suprimir fitxers a la carpeta WindowsTemp. El primer pas és desar el camí a aquesta carpeta en una variable...

|_+_|

Aleshores, utilitzaré Get-ChildItem per llistar el contingut de la carpeta i canalitzar la sortida a Remove-Item.

Tanmateix, per poder capturar els errors, he d'adjuntar tota l'ordre en un Try, Catch.

Aquí teniu el guió complet...

|_+_| Per utilitzar l'script, copieu-lo a PowerShell ISE. A continuació, canvieu la variable $Path pel camí de la carpeta que voleu suprimir. A més, canvieu el $LogPath a la ruta de la carpeta on voleu desar els fitxers de registre.

Això és tot: la nostra guia completa per utilitzar PowerShell per suprimir fitxers o carpetes! Espero que us hagi estat útil la guia.

Si us ha semblat útil, si us plau voteu a Ha estat útil aquesta publicació? baix. Alternativament, podeu compartir comentaris detallats amb el formulari DEIXA UNA RESPOSTA al final d'aquesta pàgina.

Finalment, per obtenir més guies de PowerShell amb exemples, visiteu la nostra pàgina de instruccions de Windows PowerShell. També podeu trobar útils les nostres guies de formació GRATUÏTES de PowerShell.