כיצד למחוק קבצים ישנים מ- N ימים באופן אוטומטי ב- Windows -

How Delete Files Older Than N Days Automatically Windows Winhelponline

ל- Windows 10 יש תכונות מובנות לפינוי מקום על ידי מחיקת קבצים ישנים ב- Windows % temp% מדריך ו הורדות תיקיה. להגדרות Windows 10 יש אפשרות ('אחסון') אשר באופן אוטומטי מנקה קבצים זמניים האפליקציות שלך אינן משתמשות, קבצים בהורדות שלא שונו ב- x הימים האחרונים, או קבצים שנמצאו בסל המיחזור במשך X ימים.



חלונות 10 הגדרות אחסון אפשרויות ניקוי - -



כמו כן, כלי ניקוי הדיסק מנקה קבצים ב- % temp% הספרייה שלא נגישה אליה 7 הימים האחרונים .



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

כיצד למחוק אוטומטית קבצים ישנים מ- N ימים ב- Windows

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

שיטה 1. מחק קבצים ישנים מימים 'N' באמצעות סייר הקבצים

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



  1. פתח את התיקיה שבה ברצונך למחוק קבצים ישנים יותר.
  2. לחץ על תיבת החיפוש או לחץ על כפתור F3 במקלדת.
  3. לחץ על כפתור תאריך השינוי ובחר אחת מהאפשרויות הנפתחות, אמור 'שבוע שעבר'.
    למחוק קבצים מעל גיל x בחלונות - -
  4. חיפוש ב- Windows יסנן את התוצאות באופן מיידי. בחר את הקבצים שברצונך למחוק ולחץ על מקש מחק במקלדת.

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

שאילתת חיפוש מתקדמת: מפעילי 'תאריך'

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

שונו בתאריך: 1/1/2017 .. 31/12/2017

זה מוצא קבצים ששונו בטווח התאריכים האמור. אתה יכול גם להשתמש תאריך יצירה: גישה למידע: אוֹ תַאֲרִיך: (במיוחד עבור תמונות מצלמה) מפעילים. שים לב ש תַאֲרִיך: המפעיל משתמש במטא נתונים של תאריך (EXIF) שתועדה על ידי המצלמה.

קָשׁוּר: כיצד לחפש קבצים שנוצרו בין שני תאריכים ב- Windows

כדי למצוא קבצים שלא שונו לאחר ה -1 בנובמבר 2017 השתמש בפחות מ- ( < ) סמל עם שונה את הנתונים: כמפעיל, כמפורט להלן:

שונתה נתונים:<11/1/‎2017

למחוק קבצים מעל גיל x בחלונות - -

בחר את הקבצים מהרשימה ומחק אותם.

עֵצָה: במקום להקליד את טווח התאריכים באופן ידני, הקלד שונתה נתונים: אוֹ תאריך יצירה: אוֹ גישה למידע: אוֹ תַאֲרִיך: בתיבת החיפוש ותן לסייר הקבצים להציג את בורר התאריכים עבורך. לאחר מכן תוכל לבחור תאריך או טווח תאריכים מהקופץ. כדי לציין טווח תאריכים, בחר בתאריך הראשון וגרור את הסמן לשדה המתאים.

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


שיטה 2: מחיקת קבצים ישנים יותר מימים 'N' באמצעות שורת הפקודה

ה ForFiles כלי הקונסולה (ב- Windows 7, Windows 8, Windows 8.1 ו- Windows 10) בוחר קובץ או קבוצה של קבצים ומבצע פקודה על אותו קובץ או קבוצת קבצים.

עזרה לקבצים - מתגי שורת פקודה / P - מציין את הנתיב להתחלת החיפוש. תיקיית ברירת המחדל היא ספריית העבודה הנוכחית (.). / S - מורה על שליחת קבצים לתיקיות משנה. כמו 'DIR / S'. / D - בחר קבצים עם תאריך שינוי אחרון. לדוגמא, -365 פירושו לפני יותר משנה, -30 פירושו לפני חודש. / C 'פקודה' - מציין את הפקודה לביצוע עבור כל קובץ. מחרוזות פיקוד צריכות להיות עטופות במרכאות כפולות. פקודת ברירת המחדל היא 'cmd / c echo @ file'. ניתן להשתמש במשתנים הבאים במחרוזת הפקודה: @ file - מחזירה את שם הקובץ. @fname - מחזיר את שם הקובץ ללא סיומת. @ext - מחזיר רק את סיומת הקובץ. @path - מחזיר את הנתיב המלא של הקובץ. @relpath - מחזיר את הנתיב היחסי של הקובץ. @isdir - מחזיר 'TRUE' אם סוג קובץ הוא ספריה, ו- 'FALSE' עבור קבצים. @fsize - מחזיר את גודל הקובץ בתים. @fdate - מחזיר את התאריך האחרון של הקובץ. @ftime - מחזירה את השעה האחרונה ששונתה של הקובץ.

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

כדי למצוא ולמחוק קבצים המבוגרים ממספר מסוים של ימים באמצעות ForFiles, פתח חלון שורת פקודה והקלד אחת מהפקודות הבאות:

ForFiles / p 'D:  My Scripts' / s / d -30 / c 'cmd / c del @path'

-אוֹ-

ForFiles / p 'D:  My Scripts' / s / d -30 / c 'cmd / c del @ file'

מחק קבצים מעל גיל x בפקודה forfiles.exe forfiles

האמור לעיל מניח שנתיב התיקיה הוא D: סקריפטים שלי ואתה רוצה למחוק קבצים מעל גיל 30 יום. התאם אישית את נתיב התיקיה ומספר הימים בהתאם לצרכים שלך.

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

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

ForFiles / p 'D:  My Scripts' / s / d -30 / c 'cmd / c echo @path'

-אוֹ-

ForFiles / p 'D:  My Scripts' / s / d -30 / c 'cmd / c echo @ file'

קבצים ישנים למחוק קבצים ישנים יותר x ימים

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

הפעל את הפקודה באופן אוטומטי באמצעות מתזמן המשימות

  1. הפעל את מתזמן המשימות.
  2. בתזמון המשימות, לחץ על 'ספריית מתזמן המשימות'
  3. לחץ על הקישור 'צור משימה' בחלונית הימנית.
  4. בתיבת הדו-שיח 'צור משימה', בחר בכרטיסייה 'כללי'.
  5. ציין את שם המשימה, אמור 'מחק קבצים ישנים יותר במסמכים שלי'
  6. לחץ על הכרטיסייה טריגרים ולחץ על חדש.
  7. בחר 'בתזמון' ברשימה הנפתחת תחת תיבת הרשימה הנפתחת 'התחל במשימה'.
  8. אתה יכול לבחור להפעיל את המשימה מדי יום, שבועי או חודשי. אם תבחר שבועי, בחר את היום / ים בשבוע שבו ברצונך שהמשימה תופעל.
  9. לאחר שתסיים, לחץ על כפתור אישור.
  10. לחץ על הכרטיסייה 'פעולות' ולחץ על כפתור 'חדש ...'.
  11. בחלון 'פעולה חדשה', מלא את הדברים הבאים:
    פעולה: הפעל תוכנית תוכנית / סקריפט: C:  Windows  System32  ForFiles.exe הוסף ארגומנטים (אופציונלי): / p '% userprofile%  Documents' / s / d -30 / c 'cmd / c del @ file'

    למחוק קבצים מעל גיל X ימים בתזמון המשימות של Windows

  12. לחץ על אישור.

נוצרת משימה חדשה שכאשר היא מופעלת מוחקת קבצים במערכת שלך מסמכים תיקייה שלא שונתה ב -30 הימים האחרונים.


שיטה 3: מחק קבצים מעל גיל N באמצעות סקריפט

למשתמשי פורום Spiceworks יש VBScripts שיכולים למחוק קבצים מעל גיל מספר ימים בנתיב תיקייה מוגדר באופן רקורסיבי. הנה תסריט פשוט:

בשגיאה המשך הגדר הבא oFileSys = WScript.CreateObject ('Scripting.FileSystemObject') sRoot = 'C:  נתיב לקבצים ישנים' 'שורש הנתיב לחפש קבצים היום = תאריך nMaxFileAge = 3' קבצים ישנים מזה (בימים) יימחק DeleteFiles (sRoot) פונקציה DeleteFiles (ByVal sFolder) הגדר oFolder = oFileSys.GetFolder (sFolder) הגדר aFiles = oFolder.Files הגדר aSubFolders = oFolder.SubFolders לכל קובץ aFiles dFileCreated = FormatDateTime (קובץ. ) אם DateDiff ('d', dFileCreated, היום)> nMaxFileAge ואז הקובץ. מחק (True) סיום אם הבא עבור כל תיקייה aSubFolders DeleteFiles (תיקיה. נתיב) פונקציית הסיום הבאה

מָקוֹר: מחק קבצים ישנים ותיקיות משנה ריקות - מרכז הסקריפטים - Spiceworks

חָשׁוּב! התסריט הנ'ל לוקח בחשבון את המאפיין 'תאריך יצירה' של פריטים במקום 'תאריך שינוי אחרון'. אם אתה רוצה למחוק קבצים שלא היו שונה בימים N האחרונים, שנה את השורה הבאה בתסריט:

dFileCreated = FormatDateTime (file.DateCreated, '2')

ל

dFileCreated = FormatDateTime (file.DateLastModified, '2')

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

הנה סקריפט נוסף שמוחק קבצים ישנים מ- N ימים, ומנקה אוטומטית תיקיות משנה ריקות באופן רקורסיבי. לִרְאוֹת מחק קבצים מעל גיל מקסימלי (בימים) - מרכז הסקריפטים - ספייס-וורקס

קָשׁוּר: כיצד למצוא ולמחוק תיקיות ריקות במהירות ב - Windows


שיטה 4: מחק קבצים ישנים מ- 'n' ימים באמצעות PowerShell

האפשרות השלישית היא להשתמש ב- PowerShell, שיש לו cmdlet שימושי לאיתור ומחיקה של קבצים ישנים.

הפעל את PowerShell ( powershell.exe) והקלד את הפקודה הבאה:

Get-ChildItem -Path [folder_path] -File -Recurse -Force | היכן-אובייקט {($ _. LastWriteTime -lt (Get-Date) .AddDays (-30))} | הסר פריט -כוח

דוגמא:

Get-ChildItem-Path 'D:  Reports' -File -Recurse -Force | היכן-אובייקט {($ _. LastWriteTime -lt (Get-Date) .AddDays (-30))} | הסר פריט -כוח

כדי להשתמש בנתיבים המכילים משתנה סביבתי כמו % userprofile% מסמכים השתמש בתחביר שלמטה:

Get-ChildItem -Path '$ env: userprofile  documents' -File -Recurse -Force | היכן-אובייקט {($ _. LastWriteTime -lt (Get-Date) .AddDays (-30))} | הסר פריט -כוח

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

מאז השתמשנו ב- -קוֹבֶץ פרמטר, זה עובד רק עבור קבצים. לכן, ניתן למנוע מחיקת תיקיות משנה שלא נכתבו ב- n הימים האחרונים.

לפקודה הנ'ל יש שלושה חלקים:

  1. ה Get-ChildItem cmdlet מקבל את רשימת הקבצים בתיקיית המסמכים שלך.
  2. ואז הפלט הוא צינור אל איפה-אובייקט cmdlet כך שהסינון נעשה, ובחר רק קבצים שלא שונו לאחרונה איקס מספר הימים (בדוגמה זו, 30 ימים ).
  3. לבסוף, אנו מצנפים את הפלט אל ה- הסר פריט cmdlet, אשר בתורו מוחק את אותם קבצים ישנים שהוחזרו על ידי שני ה- cmdlets הקודמים.

טיפ 1: רשימת קבצים תואמים, לא למחוק אותם?

לרשימת הקבצים והתיקיות התואמים מבלי למחוק אותם, שחרר את | הסר פריט החלף.

Get-ChildItem -Path [folder_path] -File -Recurse -Force | היכן-אובייקט {($ _. LastWriteTime -lt (Get-Date) .AddDays (-30))}

טיפ 2: לדכא שגיאות בעת מחיקת פריטים

כדי לדכא הודעות שגיאה (בעת גישה או מחיקה של פריטים) מהצגה במסוף, הוסף את פעולת שגיאה בשקט המשך פָּרָמֶטֶר.

Get-ChildItem -Path [folder_path] -File -Recurse -Force | היכן-אובייקט {($ _. LastWriteTime -lt (Get-Date) .AddDays (-30))} | הסר פריט -ErrorAction בשקט המשך -כוח

מחק קבצים ישנים וכן תיקיות

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

דוגמא:

Get-ChildItem -Path '$ env: userprofile  documents' -Recurse -Force | היכן-אובייקט {($ _. LastWriteTime -lt (Get-Date) .AddDays (-30))} | הסר פריט -כוח

(מתייחס: תיעוד cmdlet של Get-ChildItem באתר מיקרוסופט)

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


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

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