الأمر "إنشاء اختصار" باقتطاع أسماء المجلدات مسار المصدر إلى ثمانية أحرف

انتهاء دعم نظام التشغيل Windows XP

لقد أنهت شركة Microsoft دعم Windows XP في 8 أبريل، 2014. وقد أثر هذا التغيير على تحديثات البرامج لديك وخيارات الأمان الخاصة بك. تعرف على ما يعنيه ذلك فيما يتعلق بك وكيفية الحفاظ على حمايتك.

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

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

J:\Mydirectory\Myapplication.exe

في حالة عدم وجود محرك أقراص J يتم اقتطاع المسار إلى:

J:\Mydirect\Mypplica.exe
السبب
قد تحدث هذه المشكلة لأن shell لا يمكن تحديد ما إذا كان القرص الثابت يدعم أسماء الملفات الطويلة ، بحيث يتم اقتطاع المسار إلى أن تكون مقبولة كافة أنظمة الملفات.
تصريح
أقرت Microsoft أن هذه مشكلة في منتجات Microsoft المسردة في بداية هذه المقالة.
معلومات أخرى
قد يكون الملاحظة هذه المشكلة عند استخدام أحد الأساليب التالية لإنشاء اختصارات:
  • إنشاء المثبت Systems Management Server (SMS) أسلوب اختصار
  • إنشاء VBScript أسلوب اختصار
  • أسلوب واجهة IShellLink

مثبّت SMS إنشاء أسلوب اختصار


استخراج من ملف .ipf مثبّت SMS يوضح المشكلة:
item: Create Shortcut  Source English=X:\Pw32\Alongdirectory\Blongdirectory\Longfilename.exe  Destination English=C:\Winnt\Shortcut123.lnk  Key Type English=1536  Flags=00000001end				
إذا ترجمة البرنامج نصي مع هذه الاستخراج ثم تشغيلها بعد مؤكدة أن محرك الأقراص X غير موجود يمكنك ملاحظة أنه يتم إنشاء الاختصار لكن يتم اقتطاع المسار الهدف إلى:

X:\Pw32\Alongdir\Blongdir\Longfile.exe

في حالة توصيل محرك الأقراص X إلى مشاركة أو استخدام أمر subst للإشارة إلى محرك أقراص محلي وقمت بتشغيل البرنامج النصي مرة أخرى يتم إنشاء الاختصار مع المسار الصحيح الهدف:

X:\Pw32\Alongdirectory\Blongdirectory\Longfilename.exe

لا تحدث هذه المشكلة عن طريق مثبّت SMS. تحدث هذه المشكلة بسبب مثبّت SMS يستخدم واجهة IShellLink (راجع "أسلوب واجهة IShellLink") لإنشاء اختصارات. مثبّت SMS بتمرير اسم المسار الكامل الصحيح إلى واجهة IShellLink لكن يتم اقتطاع المسار عند تنفيذ العملية IShellLink::SetPath.

أسلوب VBScript إنشاء اختصار

عينة VBScript يوضح المشكلة:
set WshShell = WScript.CreateObject("WScript.Shell")set oShellLink = WshShell.CreateShortcut("d:\" & "\Long filename Shortcut .lnk")oShellLink.TargetPath = "j:\my long directory\myapplication.exe"oShellLink.WindowStyle = 1oShellLink.Hotkey = "CTRL+SHIFT+F"oShellLink.Description = "Long Filename Shortcut"oShellLink.Save				
عند تشغيل هذا البرنامج النصي و J محرك الأقراص غير موجود ، الانتباه اختصار تم إنشاؤه ولكن المسار الهدف:

J:\My_long_\Myapplic.exe

ملاحظة: يتم استبدال أي أحرف غير معتمدة بواسطة أنظمة الملفات التي لا تريد أسماء الملفات الطويلة مثل حرف المسافة عادةً بواسطة رمز تسطير أسفل السطر "_".

كمحاولة للتغلب على هذه المشكلة يمكنك استخدام الأمر subst الإشارة محرك الأقراص J إلى قرص الثابت محلي:
set WshShell = WScript.CreateObject("WScript.Shell")Dim ret'subst a drive to make the mapping workret = WshShell.Run ("cmd /c subst j: c:\", 0, TRUE)set oShellLink = WshShell.CreateShortcut("d:\" & "\Long filename Shortcut .lnk")oShellLink.TargetPath = "j:\my long directory\myapplication.exe"oShellLink.WindowStyle = 1oShellLink.Hotkey = "CTRL+SHIFT+F"oShellLink.Description = "Long Filename Shortcut"oShellLink.Save'remove the substret = WshShell.Run ("cmd /c subst j: /d", 0, TRUE)				
هذا الأمر نقاط محرك الأقراص J محرك الأقراص C. إذا كان محرك الأقراص C يعتمد أسماء الملفات الطويلة ، الأمر إنشاء اختصار مع المسار الهدف التالي:

J:\My directory\Myapplication.exe طويلة

يمكن أيضاً استخدام WshNetwork.MapNetworkDrive الاتصال محرك الأقراص J بمشاركة معروفة إنشاء الاختصار كما هو موضح في الخطوات السابقة ثم قم بإزالة محرك الأقراص J باستخدام WshNetwork.RemoveNetworkDrive.

أسلوب واجهة IShellLink

استخراج من التعليمات البرمجية يوضح المشكلة عن طريق استخدام واجهة IShellLink في Microsoft Visual C++:
HRESULT hres; IShellLink* psl;      // Get a pointer to the IShellLink interface.     hres = CoCreateInstance(CLSID_ShellLink, NULL,         CLSCTX_INPROC_SERVER, IID_IShellLink, (LPVOID *) &psl);     if (SUCCEEDED(hres)) {         IPersistFile* ppf;          // Set the path to the shortcut target and add the         // description.         hres = psl->SetPath("X:\\azertyuiop\\azertyuiop.exe");				
يجب عليك استخدام IPersistFile::Save الكتابة الاختصار إلى القرص. يؤدي هذا الإجراء في مسار هدف:

X:\Azertyui\Azertyui.exe

تحدث هذه المشكلة على كافة إصدارات Windows NT 4.0 و Windows 2000.

تحذير: تمت ترجمة هذه المقالة تلقائيًا

خصائص

رقم الموضوع: 263324 - آخر مراجعة: 12/05/2015 20:21:09 - المراجعة: 3.3

Microsoft Windows 2000 Professional Edition, Microsoft Systems Management Server 1.0 Standard Edition, Microsoft Systems Management Server Installer 2.0, Microsoft Windows NT Workstation 4.0 Developer Edition, Microsoft Windows XP Home Edition, Microsoft Windows XP Professional

  • kbnosurvey kbarchive kbmt kbnofix kbprb kbsms200presp3 kbui KB263324 KbMtar
تعليقات