คำสั่งสร้างทางลัดตัดชื่อแหล่งเส้นทางโฟลเดอร์ไปยังอักขระแปด

การสนับสนุนสำหรับ Windows XP สิ้นสุดลงแล้ว

Microsoft ได้หยุดให้การสนับสนุนสำหรับWindows XP เมื่อวันที่ 8 เมษายน 2014 การเปลี่ยนแปลงครั้งนี้ได้ส่งผลกระทบต่อการอัปเดตซอฟต์แวร์ของคุณและตัวเลือกในการรักษาความปลอดภัย การเปลี่ยนแปลงนี้จะส่งผลอย่างไรกับคุณและทำอย่างไรเพื่อให้คอมพิวเตอร์ของคุณยังได้รับการปกป้องอยู่

ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ

ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:263324
บทความนี้ถูกเก็บถาวรแล้วเนื้อหาของบทความจึงถูกนำเสนอ "ตามลักษณะที่เป็น" และจะไม่มีการปรับปรุงข้อมูลอีก
อาการ
เมื่อคุณสร้างทางลัด และระบุชื่อแฟ้มที่ยาวใน เส้นทางเป้าหมาย เส้นทางจะถูกปัดเศษถ้าฮาร์ดดิสก์สำหรับเป้าหมายของไม่มี มีอยู่ ตัวอย่างเช่น สร้างทางลัดที่ มีเป้าหมายดังต่อไปนี้:

J:\Mydirectory\Myapplication.exe

หากไดรฟ์ J ไม่มี เส้นทาง ถูกตัดทอน:

J:\Mydirect\Mypplica.exe
สาเหตุ
ปัญหานี้อาจเกิดขึ้นได้เนื่องจากไม่สามารถกำหนด shell ว่าฮาร์ดดิสก์รองรับชื่อแฟ้มที่ยาว ดังนั้นเส้นทางจะถูกปัดเศษเป็น ยอมรับได้กับระบบแฟ้มทั้งหมด
สถานะ
Microsoft ยืนยันว่า ปัญหานี้เป็นปัญหาที่เกิดขึ้นกับผลิตภัณฑ์ของ Microsoft ซึ่งมีการระบุไว้ ในตอนต้นของบทความนี้
ข้อมูลเพิ่มเติม
ตรวจปัญหานี้อาจจะสอบเมื่อคุณใช้ใดก็ได้ วิธีต่อไปนี้เพื่อสร้างทางลัดไปยัง:
  • สร้างโปรแกรมติดตั้งระบบจัดการ Server (SMS) วิธีลัด
  • VBScript สร้างวิธีลัด
  • วิธีการอินเทอร์เฟซสำหรับ IShellLink

โปรแกรมติดตั้ง SMS สร้างวิธีลัด


แยกจากแฟ้ม.ipf SMS Installer แสดง ปัญหา:
item: Create Shortcut  Source English=X:\Pw32\Alongdirectory\Blongdirectory\Longfilename.exe  Destination English=C:\Winnt\Shortcut123.lnk  Key Type English=1536  Flags=00000001end				
ถ้าคุณทำการคอมไพล์สคริปต์ ด้วยการดึงข้อมูลนี้ และคุณเรียกใช้หลังจาก คุณมี ensured ไม่มีไดรฟ์ 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 อินเทอร์เฟซใน c ++ภาพของ Microsoft:
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:20 - ฉบับแก้ไข: 5.0

Microsoft Windows 2000 Professional Edition, Microsoft Windows NT Workstation 4.0 Developer Edition, Microsoft Windows XP Home Edition, Microsoft Windows XP Professional Edition

  • kbnosurvey kbarchive kbnofix kbprb kbsms200presp3 kbui kbmt KB263324 KbMtth
คำติชม