سؤال

أحاول كتابة ملف دفعي في نظام التشغيل Windows XP يأخذ اسم مسار مؤهل بالكامل ويخرج إصدار الاسم المختصر 8.3 ...

Genacodicetagpre

لقد صادفت حالة معينة حيث ينتج عن ذلك مسار وملف غير صحيحين ... Genacodicetagpre

لاحظ أن الإخراج أعلاه ("C: \ DOCUME ~ 1 \ angus \ LOCALS ~ 1 \ TEMPOR ~ 1 \ Content.IE5 \ 2JSTM34V \ 62_1_ ~ 1.JA2M34V \ 62 [1] .ja2") غير موجود.إذا قمت بإزالة قسم ".JA2M34V \ 62 [1]" من هذا الإخراج ، فإن السلسلة الناتجة ستكون مسارًا صالحًا لملف الإدخال الأصلي.

يبدو أن هذه مشكلة في استخدام الأقواس ([]) في اسم الملف.إذا قمت بإنشاء ملف 62.ja2 في نفس الدليل ، فسيكون الإخراج صحيحًا ... Genacodicetagpre

هل هذا خطأ في Windows؟هل يعرف أي شخص ما إذا كان هناك حل بديل للسماح للملف الدفعي بالتعامل بشكل صحيح مع اسم الملف هذا؟

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

المحلول

إنه ليس خطأ في شفرتك ، إنه خطأ في XP!
مع Vista يعمل نفس الكود.

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

ويحدث فقط إذا كان اسم الملف يحتوي على حرف واحد أو أكثر من رمز الترقيم العام

حالة اختبار قصيرة Genacodicetagpre

نتائج السطور الأخيرة Genacodicetagpre

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