سؤال

سيقوم البرنامج النصي التالي بحذف الملفات في دليل مسمى أكبر من 14 يومًا ويكتب إلى أ .txt مع حذف المسار والملفات (وجدت هذا البرنامج النصي في منتدى آخر .. credit إلى shay):

dir c:\tmp -recurse | where {!$_.PsIsContainer -AND $_.lastWriteTime -lt (Get-Date).AddDays(-14) } | select LastWriteTime,@{n="Path";e={convert-path $_.PSPath}} | tee c:\oldFiles.txt | Remove-Item -force -whatif

لدي 3 أسئلة:

  1. ما هو -lt و ماهو -le و ماهو -gt؟ متى سأستخدم كل واحد
  2. يقوم البرنامج النصي أعلاه بحذف الملف فقط ... كيف يمكنني حذف المجلدات أيضًا؟
  3. يعتمد البرنامج النصي أعلاه من LastWriteTime .. ماذا عن CreatedDate أو LastAccessed زمن؟
هل كانت مفيدة؟

المحلول

حسنا يلا بينا نبدأ:

  1. -LT ، -LE و -GT هم عوامل المقارنة. LT يعني أقل من ، LE يعني أقل أو متساوية من ، و GT يعني أكبر من.

  2. يمكن أن تصبح إزالة المجلدات خطرة إذا لم يكن لديك سيطرة على ما يدخله. قد تواجه مشاكل ويرجى أن تكون على علم بفقدان البيانات. يمكنك حذف المجلدات باستخدام نفس CMDLET لإزالة العنصر ، فقط من خلال اللعب مع خياراتها. تحقق من هذه المقالة ، لديها تعليمات رائعة حول كيفية تحقيقها:http://searchwindowsserver.techtarget.com/generic/0،295582،sid68_gci1275887،00.html

  3. عادة ، بالنسبة للملفات التي كانت جالسة هناك لفترة من الوقت ، سيكون LastWriteTime و CreateDate و LastAccessTime هو نفسه. في ملف للقراءة فقط ، مثل DLL ، قد يكون LastAccessTime أحدث من الآخرين. في ملف قراءة/كتابة (مثل ملف PST الخاص بـ Outlook) ، قد يكون AccessTime هو نفسه. في الأساس ، هذا متروك لك تمامًا. إنهم يعملون بنفس الطريقة التي تعمل بها LastWriteTime. النظر في طبيعة الملفات التي تريد حذفها ، والمضي قدما!

نصائح أخرى

-LT -LE و -GT هما مشغلي المقارنة بدلاً من <، <= ،>. يكتب "مساعدة حول _comparison_operators"في موجه أوامر PowerShell للحصول على التفاصيل على كل نوع والسبب لاستخدامها بدلاً من اللغات التي تعرفها من اللغات الأخرى.

لحذف المجلدات أيضًا تحتاج إلى إزالة ! $. psiscontainer و جزء من الفلتر. هذا هو إزالة جميع العناصر من القوائم التي هي الدلائل.

لست متأكدًا من ما أنت عليه مع السؤال "ماذا عن CreateDate أو LastAccated Time" ، ولكن يمكنك ببساطة استخدام هذه الخصائص بطريقة مماثلة كآخر في وقت ولكنك تحتاج إلى اتخاذ قرار بشأن المنطق الذي تحاول تحقيقه.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top