כיצד להסיר תיקיות ריקות באופן אוטומטי בחלונות -

How Remove Empty Folders Automatically Windows Winhelponline

לאורך זמן, מאות תיקיות ריקות וקבצי זבל עשויים לתפוס את הדיסק הקשיח שלך. בעוד שקבצי הזבל תופסים שטח דיסק וניתן לנקות אותם באמצעות ניקוי דיסק אוֹ הגדרות אחסון , הספריות הריקות נשארות.



התיקיות הריקות אינן תופסות מקום בדיסק, אך כדי לארגן את הנתונים שלך טוב יותר, ייתכן שתרצה לגזום אותן מדי פעם.



מאמר זה דן בשיטות שונות לאיתור ולהסרה של תיקיות ריקות במחשב שלך.



תוכן

  1. הסר תיקיות ריקות בעזרת 'מצא תיקיות ריקות-n- תיקיות '
  2. הסר תיקיות ריקות באמצעות ל ו מחקר ופיתוח פקודות
  3. הסר תיקיות ריקות באמצעות Robocopy
  4. הסר תיקיות ריקות באמצעות PowerShell
  5. הסר תיקיות ריקות באמצעות סקריפטים של Windows
  6. הסר תיקיות ריקות באמצעות DelEmpty.exe

כיצד למצוא ולהסיר תיקיות ריקות ב- Windows?

תיקיה או ספרייה ריקים הם תיקיות שאין בהן קובץ או תת-ספרייה. תיקיות ריקות אינן לוקחות מקום בדיסק, אך רבות מדי מהן יכולות להוות מטרד. כדי למצוא אותם ולהסיר אותם, השתמש באחת מהשיטות הבאות.

חָשׁוּב: לרוב לא מומלץ להפעיל כלי אוטומטי או קובץ אצווה למחיקת תיקיות ריקות בכונן המערכת כולו. הסיבה לכך היא שתוכניות מסוימות עלולות שלא להצליח ולזרוק שגיאה מוזרה כאשר היא מוצאת תיקייה חיונית חסרה. כמו תמיד, האזהרה הסטנדרטית חלה. ודא שיש לך גיבויים מתאימים, רצוי בכונן חיצוני, לפני שתפעל את מערכת הקבצים או את הרישום של Windows.



קָשׁוּר: מצא ומחק קבצי 0 בתים באופן רקורסיבי בתיקיה ב- Windows

נתחיל בכלי GUI מסודר, ואחריו שורת פקודה מקומית ושיטות סקריפט.

1. הסר תיקיות ריקות באמצעות כלי השירות 'מצא קבצים ריקים ו- n'

מצא קבצים ריקים ו- n- תיקיות הוא כלי מצוין שיכול למצוא ולמחוק קבצים ריקים (0 בתים) ותיקיות ריקות באופן רקורסיבי מתחת לעץ תיקיות.

  1. הורד מצא קבצים ריקים ו- n- תיקיות (מתקין 600KB) מ- Ashisoft.com.
  2. בחר את התיקיה ולחץ על סרוק עכשיו.
    הסר תיקיות ריקות בחלונות
    הכלי יפרט קבצים ותיקיות ריקים בכרטיסיות נפרדות.
  3. נְקִישָׁה סמן את כל התיקיות ואז לחץ מחק תיקיות .
    הסר תיקיות ריקות בחלונות
    באופן דומה, אם אתה רוצה מחק את קבצי 0-בתים בעץ התיקיות שנבחר, לחץ על קבצים ריקים הכרטיסייה.

ל- Ashisoft.com כלים מדהימים אחרים שתוכלו לבדוק!


2. הסר תיקיות ריקות באמצעות פקודות 'for' ו- 'rd'

אתה יכול להשתמש בפקודות פנימיות של שורת הפקודה ל ו מחקר ופיתוח כדי למנות את רשימת התיקיות ולמחוק את התיקיות הריקות.

  1. לחץ והחזק את מקש Shift, לחץ לחיצה ימנית על תיקיה ולחץ פתח כאן חלון פקודה . פעולה זו פותחת את שורת הפקודה במיקום התיקיה הנוכחי, שיכול גם לאמת במסוף. הערה: עליך לוודא שאתה מפעיל את הפקודה הבאה מנתיב תיקיית האב המדויקת שבה אתה צריך למצוא ולהסיר תיקיות משנה ריקות.
  2. ברגע שאתה בספרייה הרצויה בשורת הפקודה, הפעל את שורת הפקודה הבאה:
    עבור / f 'delims ='% i in ('dir / s / b / ad ^ | sort / r') do rd '% i' 2> NUL (or) for / f 'usebackq delims ='% i in ( ''dir / s / b / ad | מיין / r'') לעשות rd '% i' 2> NUL

    הסר תיקיות ריקות באמצעות הפקודה for ו- rd - batch

    פעולה זו מוחקת את כל הספריות הריקות בין ספריות המשנה מנתיב התיקיה הבסיסית, כולל תיקיות ריקות מקוננות.

    אם אתה מתכוון להשתמש בפקודה לעיל בקובץ אצווה, ואז החלף %אני עם %%אני .

סמל אזהרת אזהרהחָשׁוּב: הפקודה הנ'ל לא ימחק תיקיות עם תווים זרים - למשל, 蜍 穂. אולי תרצה לבדוק DelEmpty.exe (מכוסה במאמר זה) או שיטות אחרות למחיקת תיקיות עם תווי Unicode.

שורת הפקודה הנ'ל באדיבותו של ריימונד צ'ן ממיקרוסופט באמצעות הבלוג שלו הדבר החדש הישן . בפוסט זה שורת הפקודה של ריימונד שונתה מעט כך שהיא מוחקת גם שמות תיקיות המכילים רווח (ים).

איך הפקודה עובדת

הפקודה שלעיל מפרטת את כל ספריות המשנה (רקורסיבית) בנתיב הבסיס הנוכחי וממיינת את הרשימה ( מיין / r ) בסדר הפוך. מיון הסדר ההפוך הוא לוודא שהספירה נעשית מלמטה למעלה. זה חשוב למחיקת ספריות ריקות, מכיוון שעליך להסיר את ספריות המשנה לפני הסרת האב.

ואז היא מנסה להסיר את רשימת הספריות (בסדר מיון הפוך) באמצעות ה- מחקר ופיתוח פקודה. אם ספריה אינה ריקה, היא ממשיכה לספרייה הבאה וכן הלאה. ה 2> NULL הפקודה מבטיחה ש'הספרייה לא ריקה ' טקסט פלט מדוכא.

החיסרון היחיד בשיטה שלעיל הוא שזה לא מועיל אם ברצונך למצוא תיקיות ריקות מבלי למחוק אותן. אם ברצונך למצוא את רשימת התיקיות הריקות, השתמש בשורת הפקודה בפסקה למטה, או בצע כל שיטה אחרת המתוארת במאמר זה.

מצא תיקיות ריקות, אך אל תמחק

כדי למצוא רק את התיקיות הריקות מבלי למחוק אותן, השתמש בתחביר בשורת הפקודה הזו:

עבור / r 'D:  העלאות  2019' / d% F ב- (.) do @dir / b '% F' | findstr '^'> אפס || הד% ~ fF

זה מראה לך את הפלט המכיל את רשימת הספריות הריקות.

רשימת תיקיות ריקות - שורת פקודה

נניח שיש לך תיקיות מקוננות ריקות כאלה:

ג:  1 └───2 └───3 └───4

הפעלת הפקודה שלמעלה מפרטת רק את התיקיה העמוקה ביותר → 4 . מבחינה טכנית, זה נכון מכיוון שתיקייה לא יכולה להיחשב ריקה אם קיימת בה תיקיית משנה או קובץ.


3. מצא והסר תיקיות ריקות באמצעות Robocopy

Robocopy הוא כלי מובנה חזק להעתקת קבצים שיש לו הרבה תכונות מתקדמות. סקרנו את Robocopy במאמר השווה את התוכן של שתי תיקיות ב- Windows .

נניח שיש לך תיקיה בשם מכוניות , המכיל כמה תיקיות משנה, חלקן ריקות. אנו נמחק את הריקים באמצעות Robocopy.

סמל נקודת ידה טריק הנה להשתמש בפקודה להעביר Robocopy, ולהעביר את אותו נתיב תיקייה בדיוק עבור 'המקור' וגם 'היעד'.

  1. פתח חלון שורת פקודה.
  2. הקלד את הפקודה הבאה ולחץ על ENTER:
    robocopy 'd:  שיעורי רכב  מכוניות' 'd:  שיעורי רכב  מכוניות' / S / move

    ה הכי חשוב הדבר לציין כאן הוא כי מָקוֹר ו יַעַד השבילים זהים (בכוונה). ה / S הפרמטר מורה לרובוקופיה לא להעביר תיקיות ריקות לנתיב היעד. כפי שהזכרנו את אותם נתיבים עבור מקור ויעד, Robocopy תמחק את התיקיות הריקות עקב / S החלף.

    הסר תיקיות ריקות

התיקיות הריקות בנתיב הנבחר נמחקות כעת.

רוצה למצוא תיקיות ריקות אך לא למחוק אותן?

אתה יכול להשתמש ב- / ל (רק רשימה) טיעון שורת פקודה עם Robocopy כך שהוא מבצע רק ריצה יבשה במקום לבצע את פעולת ההעתקה / העברה בפועל.

/ ל :: רשימה בלבד - אל תעתיק, חותמת זמן או מחק קבצים כלשהם.
/מהלך לזוז לעבור :: העבר קבצים ו- dirs (מחק מהמקור לאחר ההעתקה).
/ S :: העתק ספריות משנה, אך לא ריקות.

מחק תיקיות ריקות - רשימה -

אתה יכול לראות את מספר הקבצים בעמודה לשמוע את נתיב התיקיה. ה 0 כלומר בתיקיות אלה אין קבצים.

בואו נעמיד את הפקודה הזו למבחן אמיתי!

שֶׁלִי % APPDATA% התיקייה מלאה בתיקיות ריקות שנוספו על ידי תוכניות מיושנות.

תוכן תיקיית נדידה של appdata

לפני הניקוי, Appdata נדידה בתיקייה היו 681 תיקיות, כפי שנראה במאפייני התיקיה.
הסר תיקיות ריקות - לפני

פתחתי את שורת הפקודה והפעלתי את הפקודה הבאה:

robocopy '% appdata%' '% appdata%' / S / MOVE

הערה: משתנה הסביבה% appdata% מתורגם ל- C: Users {username} AppData Roaming תיקיה. אתה יכול להשתמש בנתיב התיקיה המלא או במשתנה הסביבה המקביל עם Robocopy. או שזה בסדר.

הסר תיקיות ריקות - נדידת אפליקציות

הוא הוסר בהצלחה 94 תיקיות ריקות שלי % APPDATA% תיקייה ותיקיות משנה.

הסר תיקיות ריקות - אחרי

הערת העורך: בפלט שורת הפקודה מתחת לסעיף הסטטיסטיקה, הופיעה השגיאה הבאה:

'שגיאה 32 (0x00000020) מחיקת ספריית המקור C: משתמשים ramesh AppData נדידה
התהליך אינו יכול לגשת לקובץ מכיוון שהוא נמצא בשימוש על ידי תהליך אחר. '

הסר תיקיות ריקות - שגיאה

מכיוון שהורענו לרובוקופיה לעבור ( /מהלך לזוז לעבור ) בספריה% APPDATA%, הכלי ניסה לנקות את תיקיית 'המקור' לאחר ש'העביר 'אותה ליעד. זה לא יכול היה, שכן% APPDATA% היא תיקיה מיוחדת. השגיאה אינה מתרחשת כאשר משתמשים בנתיב ספריה שאינו תיקייה מיוחדת. ככל שהכל המשיך בסדר, פשוט התעלמתי מהשגיאה (הטריוויאלית).


4. מצא והסר תיקיות ריקות באמצעות PowerShell

שורת הפקודה הבאה של PowerShell מוחקת תיקיות ריקות הנמצאות תחת תיקיית הבסיס שצוינה באופן רקורסיבי.

  1. הפעל את PowerShell והקלד את הפקודה הבאה:
    (gci 'folderpath' -r |? {$ _. PSIsContainer -eq $ True}) | ? {$ _. GetFileSystemInfos (). ספירה -qq 0} | הסר פריט

    החלף את 'מסלול התיקיה' במיקום תיקיית הבסיס. לדוגמה, אני מציין את נדידה תיקייה כאן:

    (gci 'C:  Users  ramesh  AppData  Roaming' -r |? {$ _. PSIsContainer -eq $ True}) | ? {$ _. GetFileSystemInfos (). ספירה -qq 0} | הסר פריט

    הסר תיקיות ריקות רקורסיבית

    פעולה זו מוחקת את כל תיקיות המשנה הריקות תחת שלי % appdata% תיקייה רקורסיבית ולא מציגה שום פלט אלא אם כן היא נתקלת בשגיאות כלשהן.

שים לב שהפקודה של PowerShell הנ'ל מנקה רק את הרמה האחרונה של התיקיה המקוננת הריקה. לדוגמה, נניח שיש לך תיקיות מקוננות ריקות כאלה:

ג:  1 └───2 └───3 └───4

הפעלת הפקודה הנ'ל מנקה את התיקיה העמוקה ביותר → 4 . הפעלת סקריפט מחדש תנקה רמה אחרת של תיקיה מקוננת ( 3 ), וכן הלאה.

אתה יכול להשתמש בתסריט PowerShell בכתובת Svendsen Tech PowerShell Wiki לעבוד עם תיקיות מקוננות.

לחלופין, תוכלו להשתמש בשיטה הבאה, א סקריפטים של Windows פתרון, לניקוי כל התיקיות הריקות, כולל מקוננות, באופן רקורסיבי.

מצא תיקיות ריקות, אך לא רוצה למחוק אותן?

רוצה לקבל את רשימת התיקיות הריקות, אך לא רוצה למחוק אותן? השתמש במקום זאת בדוגמת שורת פקודה זו:

(gci 'C:  Users  ramesh  AppData  Roaming' -r |? {$ _. PSIsContainer -eq $ True}) | ? {$ _. GetFileSystemInfos (). ספירה -qq 0} | בחר שם מלא | תצוגה מחוץ לרשת

הסר תיקיות ריקות רקורסיבית

הפקודה מוציאה את רשימת התיקיות הריקות עם נתיבים מלאים לפקד תצוגת רשת.

PowerShell מצא רשימת תיקיות ריקות תצוגת רשת פלט

עֵצָה: בתצוגת הרשת תוכלו לבחור הכל ולהעתיק את הבחירה על ידי לחיצה על Ctrl + C

מומלץ להציג תצוגה מקדימה של הרשימה לפני הפעלת הפקודה למחיקת התיקיות.


5. מצא והסר תיקיות ריקות באמצעות Scripting של Windows

עובד מיקרוסופט ג'רמי ג'יימסון כתב VBScript שמוחק תיקיות ריקות רקורסיבית. הוספתי עוד שורות בסקריפט כדי לאלץ מחיקת ספריות ריקות לקריאה בלבד, פלט את הרשימה המצטברת של תיקיות ריקות. זה גם מוציא את רשימת התיקיות הריקות שלא ניתן היה למחוק, יחד עם תיאור השגיאה המתאים.

התסריט מסוגל למחוק ספריות ריקות מקוננות בין תיקיות משנה.

 'מוחק תיקיות ריקות רקורסיבית ב- Windows' https://www.winhelponline.com/blog/find-and-delete-empty-folders-windows/ אפשרות מפורשת אם (WScript.Arguments.Count 1) ואז WScript.Echo ('שימוש : cscript DeleteEmptyFolders.vbs {path} ') WScript.Quit (1) End If Dim strPath: strPath = WScript.Arguments (0) Dim fso: Set fso = CreateObject (' Scripting.FileSystemObject ') Dim objFolder: Set objFolder = fso .GetFolder (strPath) Dim sDelList, sDelErr, sFolderPath Dim iCnt iCnt = 0 DeleteEmptyFolders objFolder Sub DeleteEmptyFolders (תיקייה) תיקיית משנה עמומה על שגיאה המשך המשך 'דלג על שגיאות בעת גישה לצמתים וכו' עבור כל תיקיית משנה בתיקייה. 0 אם folder.SubFolders.Count = 0 ו- folder.Files.Count = 0 ואז sFolderPath = folder.Path בשגיאה המשך הבא fso.DeleteFolder folder.Path, נכון אם מספר מספר 0 אז sDelErr = sDelErr & מספר מספר & ' : '& Err.description & _ vbCrLf & sFolderPath & vbCrLf & vbCrLf Else sDelList = sDelList & vbCrLf & sFolderPath iCnt = iCnt + 1 סיום אם בשגיאה הולך 0 סיום אם סיום משנה אם sDelList = 'ו- sDelErr =' ואז WScript.Echo 'לא נמצאו תיקיות ריקות תחת' & _ '' '& strPath &' ' '' & 'עץ' WScript. צא סיום אם אם sDelList '' אז sDelList = 'רשימת התיקיות הריקות שנמחקו' & vbCrLf _ & מחרוזת (38, '-') & vbCrLf & sDelList & vbCrLf & _ vbCrLf & 'סה'כ: '& iCnt &' תיקיות נמחקו. ' אם sDelErr 'אז sDelErr =' לא ניתן היה למחוק תיקיות אלה '& _ vbCrLf & String (45,' - ') & vbCrLf & sDelErr WScript. Echo sDelList & vbCrLf & vbCrLf & sDelErr 

לחלופין, תוכל לשנות את שם קובץ הסקריפט בהתאם, נניח delempty.vbs , והעבירו אותו אל C: Windows תיקיה.

אתה יכול להפעיל את הסקריפט בשתי דרכים:

באמצעות שורת הפקודה, על ידי הפעלת:

cscript.exe delempty.vbs 'folder_path'

מצא והסר תיקיות ריקות

באמצעות GUI, על ידי הפעלת:

wscript.exe 'folder_path' delempty.vbs

דרך התפריט שלח אל

אתה יכול ליצור קיצור דרך לסקריפט ב את תיקיית SendTo שלך ושמו מחק תיקיות ריקות .

הסר תיקיות ריקות

לאחר מכן לחץ באמצעות לחצן העכבר הימני על תיקיה שבה ברצונך למחוק תיקיות משנה ריקות רקורסיבית → לחץ לשלוח ל → לחץ מחק תיקיות ריקות בתפריט שלח אל.

תראה את רשימת התיקיות הריקות שנמחקו ואת המסך הכולל והתיקיות שלא ניתן היה למחוק עם קודי השגיאה המתאימים.

למצוא ולמחוק תיקיות ריקות -


6. מצא והסר תיקיות ריקות באמצעות DelEmpty.exe

DelEmpty.exe הוא כלי קונסולה מבית IntelliAdmin שיכול למחוק ספריות ריקות באופן רקורסיבי. תוכנית זו יכולה גם למחוק במהירות את הריק קבצי 0 בתים רקורסיבית.

להלן תחביר שורת הפקודה של התוכנית:

אפשרויות DelEmpty.exe [PATH]
טַעֲנָה תיאור
-f מחק קבצים ריקים (0 בתים)
מחק ספריות ריקות
-v מצב מילולי
מצב אישור (מראה מה נמחק)
כלול ספריות משנה (חוצות תיקיות משנה)
-l רשום מה יימחק ( לא ימחק )
-Y מחק ללא הנחיה (y / n)

דוגמה 1: ל רשימה בתיקיות הריקות תחת ספריית Mozilla תחת AppData, השתמשתי בשורת הפקודה הבאה:

DelEmpty.exe '% AppData%  Mozilla' -d -c -s -y -l

הפקודה שלעיל מציגה את רשימת התיקיות הריקות, אך לא תמחק אותן מאז -l ( רשימה בלבד ) נעשה שימוש במתג.

עבור שמות תיקיות המכילים רווחים - למשל, Mozilla Firefox , הקפד לכלול את הציטוטים הכפולים סביב השביל.

דוגמה 2: ל לִמְחוֹק את התיקיות הריקות מתחת ל ספריית מוזילה תַחַת % AppData% , אני מריץ את אותה שורת פקודה אך ללא -l החלף:

DelEmpty.exe '% AppData%  Mozilla' -d -c -s -y

מחק ספריות ריקות רקורסיבית

התוכנית עוברת בכל תיקיית משנה ומוחקת את התיקיות הריקות. גם תיקיות ריקות מקוננות מוסרות. לדוגמה, אם חיפשת להסיר ספריות ריקות מהמבנה הזה:

C:  Folder1  Folder2  EmptyFolder1 C:  Folder1  Folder2  EmptyFolder2

לאחר EmptyFolder1 ו EmptyFolder2 תיקיות מוסרות, תיקיה 2 ריקה גם כן - והיא גם תוסר. גַם, DelEmpty.exe מסוגל להסיר גם תיקיות עם תווי unicode / זרים - למשל, 蜍 穂

אם אתה מכיר שיטות אחרות להסרת תיקיות ריקות ב- Windows, נדע שבקטע ההערות שלמטה.


בקשה קטנה אחת: אם אהבתם את הפוסט הזה, אנא שתפו את זה?

נתח 'קטנטן' אחד ממך יעזור מאוד ברציפות בצמיחת הבלוג הזה. כמה הצעות נהדרות:
  • להצמיד אותו!
  • שתף אותו לבלוג האהוב עליך + פייסבוק, Reddit
  • צייץ את זה!
אז תודה רבה על תמיכתך, הקורא שלי. זה לא ייקח יותר מ -10 שניות מזמנך. לחצני השיתוף נמצאים ממש למטה. :)