سؤال

أحاول مقارنة قائمة الملفات مع ملف تحكم على الطابع الزمني المعدل باستخدام

dir /b /tw /od controlfile olderfile | more +1

هذا يجب أن يعود controlfile كما تاريخ التعديل على olderfile هو في وقت سابق من controlfile.ومع ذلك يبدو أنه يقارن في تاريخ الإنشاء (olderfileتاريخ الإنشاء بعد controlfile'ق) وهكذا سيعود دائما olderfile.ال /tw التبديل يجب أن أقول dir لاستخدام آخر تاريخ مكتوب (من dir /?) لذلك أنا لست متأكدا ما أفعله خطأ إذا أريد / تو للعمل كما هو موثق?

: تحديث:

حتى الآن كان لدي olderfile في مجلد فرعي نسبة إلى controlfile.عندما نسخت olderfile إلى نفس الدليل مثل controlfile عملت المقارنة كما هو متوقع-أي.عاد الأمر أعلاه controlfile.لذا من الواضح أن التواجد في مجلد فرعي يكسر المقارنة (حتى عندما يكون تاريخ تعديل المجلد الفرعي مثل تاريخ olderfileنفسها في وقت سابق من ذلك controlfile).

لذا سؤالي الآن هو كيف يمكنني حل هذا بالنظر إلى أن بنية الدليل مطلوبة?

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

المحلول

أولا شرح لماذا التعليمات البرمجية الخاصة بك هو الفشل.

وبالنظر إلى دير دون الخيار / ب ، فإنه يعرض دائما مسار الملف كخط رأس ، أبدا جنبا إلى جنب مع اسم الملف.عند استخدام خيار الفرز مع مواصفات ملف 2 داخل نفس الدليل ، يكون الأمر قادرا على فرز الملفات وعرضها تحت نفس رأس الدليل.حتى إذا تم تكرار اسم الملف ، فأنت تعرف بالضبط الملف الذي يشار إليه بالرأس.

ولكن إذا كانت مواصفات الملف 2 في مسارات مختلفة ، فهناك احتمال أن يكون اسم الملف هو نفسه ، وتختلف المسارات فقط.في هذه الحالة ، لا يكون الفرز جيدا ما لم يتم فرز كل مواصفات ملف تحت رأسها الخاص;وإلا لم تتمكن من معرفة أي ملف كان.ليس من المنطقي فرز ملف واحد ، ولكن تذكر أن مواصفات الملف يمكن أن تتضمن أحرف البدل ، لذلك فمن المنطقي.لذلك كلما يتم الجمع بين خيار الفرز مع المواصفات ملف متعددة باستخدام مسارات مختلفة ، سوف دير القيام فرز منفصل لكل مسار ، ولكل منها رأس الخاصة بها.

إضافة الخيار / ب يزيل رؤوس المسار ، لكنه لا يغير سلوك الفرز!على الاطلاق تصميم سخيفة وغير مجدية ، ولكن هذا هو ما تحصل عليه.

التوصل إلى حل هو أكثر إشكالية بكثير ، وخاصة إذا كنت ترغب في استخدام دفعة نقية مع أوامر ويندوز الأصلية فقط.يمكن أن يكون العمل مع التواريخ مثيرا للغضب مع الدفعة.

الحل دفعة الأكثر ملاءمة يمكنني الخروج مع هو نسخ الملف 2 مؤقتا في الدليل الأصل ، تشغيل المقارنة الخاصة بك داخل الدليل الأصل ، ومن ثم ديل نسخة مؤقتة.ولكن قد تكون هذه مشكلة إذا كان الملف كبيرا.يفترض أيضا أن اسم الملف غير موجود بالفعل داخل الدليل الأصل.إذا كان (أو قد) موجودة ، هل يمكن نسخ الملف إلى اسم مختلف ، والمعروف أن تكون فريدة من نوعها.بالطبع سيكون لديك ثم لترجمة النتيجة.

من ما أستطيع أن أقول ، فإن أي حل دفعة أخرى تتطلب تحليل التاريخ والوقت.هذا يفتح علبة كاملة من الديدان.(إنه قابل للتنفيذ)

إذا كان اقتراح نسخة غير مقبول (أنا لن ألومك إذا قررت عدم استخدامه) ثم أوصي باستخدام شيء آخر غير دفعة ، وربما فسكريبت ، جافا سكريبت ، أو بويرشيل.أو ربما نهج هجين مثل دفعة مع بعض فبسكريبت القيت في.

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