Acasă
» WINDOWS
»
Cum să ștergi fișiere, dar să păstrezi folderele pe Windows 10
Cum să ștergi fișiere, dar să păstrezi folderele pe Windows 10
Pentru a șterge fișiere dar a păstra folderele în Windows 10, utilizați PowerShell pentru a lista doar elementele de fișier și a le transmite către Remove-Item. Folderele nu sunt niciodată trimise comenzii de ștergere, astfel încât arborele de foldere rămâne la locul său. Previzualizați țintele cu -WhatIffirst: această operațiune ocolește Coșul de reciclare al File Explorer, așa că faceți o copie de rezervă înainte de a o rula definitiv.
Înainte de a șterge ceva
Alegeți exact folderul părinte pe care doriți să îl ștergeți, apoi verificați dacă acesta nu conține fișiere de care mai aveți nevoie. Închideți aplicațiile care ar putea utiliza aceste fișiere. Dacă directorul este sincronizat cu un serviciu cloud sau partajat cu alte persoane, luați în considerare și efectul eliminării fișierelor sale de acolo.
Folosește o cale completă a folderului, nu o literă de unitate sau o locație generală, cum ar fi C:\.
Mai întâi faceți o copie de rezervă a fișierelor importante. Remove-Itemnu vă oferă un pas de restaurare din Coșul de reciclare în File Explorer.
Rulați PowerShell cu un cont care are acces la țintă. Începeți cu o fereastră normală pentru propriile fișiere; privilegiile de acces nu anulează fiecare restricție de securitate.
Alegeți folderul părinte a cărui ierarhie trebuie să o păstrați.
Previzualizați fișierele pe care PowerShell le va elimina
Deschideți Start, căutați Windows PowerShell și lansați-l. Setați $rootfolderul pe care doriți să îl ștergeți. Păstrați ghilimelele în jurul căii, mai ales dacă aceasta conține spații:
Înlocuiți calea exemplu cu propria dvs. cale. -LiteralPathtratează valoarea ca o cale literală în loc să interpreteze caractere wildcard. -Filelimitează rezultatele la fișiere, -Recurseinclude fișiere în foldere imbricate și -Forceinclude fișiere ascunse sau de sistem în căutare. Finalul -WhatIfsolicită PowerShell să arate ce ar face fără a efectua ștergerea.
Comutatorul -WhatIf listează fișierele țintă fără a le șterge.
Citiți fiecare cale afișată în previzualizare. Confirmați că fiecare se află în arborele de foldere pe care intenționați să îl ștergeți. PowerShell ar trebui să raporteze operațiunile asupra fișierelor; dacă calea țintă este greșită sau vedeți un director la care nu v-ați așteptat, opriți-vă și corectați $rootînainte de a continua.
Examinați căile individual; previzualizarea ar trebui să denumească fișierele, nu directoarele.
Ștergeți fișierele și părăsiți folderele
Odată ce previzualizarea este corectă, rulați aceeași rețea de fișiere fără -WhatIf:
Get-ChildItemfurnizează doar obiecte de fișier, deci Remove-Itemșterge acele fișiere, lăsând folderul rădăcină și subfolderele sale la locul lor. Folderele goale rămân goale; această comandă nu le elimină. A doua comandă -Forcepermite Remove-Itemeliminarea fișierelor ascunse sau doar în citire, dar nu poate ocoli controalele de acces. Microsoft documentează opțiunile de listare numai pentru fișiere și recursivă în referința sa Get-ChildItem și explică -Forceși -WhatIfîn referința Remove-Item .
Aspectul folderelor imbricate rămâne după ce intrările de fișier sunt șterse.
Limitați curățarea la un singur tip de fișier
Pentru a elimina doar o anumită extensie, adăugați un filtru înainte de Remove-Item. De exemplu, previzualizați doar .txtfișierele din întregul arbore:
După verificarea previzualizării, rulați aceeași pipeline cu Remove-Item -Forceîn loc de Remove-Item -WhatIf. Pentru un nume de fișier repetat în subfoldere diferite, filtrați pe $_.Nameîn loc de $_.Extension, cum ar fi Where-Object { $_.Name -ieq 'image.png' }. Aceste filtre acționează în continuare asupra obiectelor de fișier, astfel încât structura folderelor este păstrată.
Verificați rezultatul și gestionați erorile
Verificați dacă calea rădăcină există încă și numărați orice fișiere pe care PowerShell le poate găsi în continuare:
Prima comandă ar trebui să returneze True. Un număr de 0înseamnă că nu s-au găsit fișiere rămase în căutare. Dacă vedeți erori de tip acces refuzat sau fișier în uz, elementele afectate nu au fost eliminate. Închideți aplicația utilizând un fișier și încercați din nou; pentru locațiile protejate, utilizați un cont cu permisiunea necesară numai dacă sunteți autorizat să modificați fișierele respective. -Forcegestionează unele atribute de fișier, nu bariere de permisiune.
Dacă scopul tău este să ștergi fișierele păstrând în același timp numele fiecărui folder, păstrează -Filefiltrul activat și inspectează -WhatIfrezultatul înainte de fiecare rulare reală. Evită comenzi precum Remove-Item $root -Recurse: acelea care vizează conținutul directorului și pot elimina și foldere.