عرض الملفات بين 2 التواريخ في البرمجة النصية دفعة واحدة

StackOverflow https://stackoverflow.com//questions/12708895

  •  13-12-2019
  •  | 
  •  

سؤال

ولست بحاجة لعرض الملفات بين 2 التواريخ (على سبيل المثال.23 سبتمبر 2012 إلى 30 سبتمبر 2012) في مجلد باستخدام برنامج نصي دفعة.

هناك ما يقرب من نصف مليون ملف في المجلد.

كيف يمكنني أن أفعل هذا?

هل كانت مفيدة؟

المحلول

العمل مع الطوابع الزمنية للملف هو ألم دفعة واحدة.الحل الأسهل هو استخدام وميك.

هنا هو برنامج نصي بسيط من شأنها أن تفعل ما تريد.يمكن تعديله بسهولة لاستخدام تاريخ الإنشاء بدلا من التاريخ المعدل الأخير.يمكنك أيضا إضافة وطرح أعمدة إضافية إلى الإخراج.النوع wmic datafile get /? للحصول على قائمة الأعمدة المتاحة (إزالة المسافات من الأسماء).الإخراج يمكن الأنابيب لفرز إذا كنت تريد النتائج مرتبة حسب التاريخ.

يجب تحديد التواريخ بتنسيق ييممد.

@echo off
:listFilesBetweenDates  Path  StartDate  EndDate
::
::  List files found in directory Path with last modified date between
::  StartDate and EndDate
::
::  path = Directory to list. Use . for current directory
::
::  startDate = YYYYMMDD format
::
::  endDate = YYYYMMDD format
::
setlocal
set "drive=%~d1"
set "folder=%~pnx1\"
set /a "start=%~2, end=%~3+1"
wmic datafile where "drive='%drive%' and path='%folder:\=\\%' and lastModified>='%start%' and lastModified<'%end%'" get lastModified, name


استخدام عينة-قائمة الملفات في الدليل الحالي بين 07 سبتمبر 2012 و 17 سبتمبر 2012

D:\test>listFilesBetweenDates . 20120907 20120917
LastModified               Name
20120917155412.408435-240  d:\test\idlist.txt
20120910160033.573531-240  d:\test\input.txt
20120907180451.138275-240  d:\test\myurls.txt
20120911115129.949457-240  d:\test\replace.bat
20120917155853.541247-240  d:\test\temp1.txt
20120917162208.635197-240  d:\test\temp2.txt
20120917162217.595287-240  d:\test\temp3.txt
20120911141557.105798-240  d:\test\test,2.txt
20120910160622.664376-240  d:\test\test.vbs
20120907161948.016121-240  d:\test\test3.bat
20120910153717.558353-240  d:\test\test3.txt


استخدام العينة:قائمة الملفات في الدليل المؤقت بين 26 سبتمبر 2012 و 27 سبتمبر 2012 مرتبة حسب تاريخ آخر تعديل بترتيب تصاعدي

D:\test>listFilesBetweenDates "%temp%" 20100926 20120927 | sort

20120926085420.368034-240  d:\users\xxxxxx\temp\~df8a4e7af0245496b2.tmp
20120926085422.630049-240  d:\users\xxxxxx\temp\fxsapidebuglogfile.txt
20120926085433.781136-240  d:\users\xxxxxx\temp\sof8436.tmp
20120926085436.861167-240  d:\users\xxxxxx\temp\cvr941b.tmp.cvr
20120926103842.351663-240  d:\users\xxxxxx\temp\~dfe34cb61c66a1dcd7.tmp
20120926181118.453780-240  d:\users\xxxxxx\temp\~dfd0009f24c8c5eb31.tmp
20120927100903.382946-240  d:\users\xxxxxx\temp\~df559b9f2b2763ac3f.tmp
20120927100915.210126-240  d:\users\xxxxxx\temp\cvr3d51.tmp.cvr
20120927100918.680196-240  d:\users\xxxxxx\temp\sof47cf.tmp
20120927144827.689200-240  d:\users\xxxxxx\temp\tmpdbc8.tmp
20120927144828.169209-240  d:\users\xxxxxx\temp\tmpddad.tmp
20120927184908.066005-240  d:\users\xxxxxx\temp\~df401234aa9008c5e1.tmp
LastModified               Name
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top