تعطي المعلمة الدفعية٪ ~ s1 8.3 اسمًا قصيرًا غير صحيح
-
27-10-2019 - |
سؤال
أحاول كتابة ملف دفعي في نظام التشغيل 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