مسار قصير دوس
Short Path Long Path VBScript CMD
هذا الكود مكتوب بلغة في بي سكريبت VBS و سيمكنك من الحصول على المسار القصير للملف أو المجلد ShortPath
و لكن ما هو المسار القصير ؟
عندما تريد فتح ملف باستخدام نافدة الدوس تكتب الأمر Start ثم يتبعه مسار الملف مثلا C:\Users\Hakim\Desktop\New folder\Bethoven 9th Simphony.mp3
ولكن ستظهر رسالة خطأ تفيد أن الملف غير موجود !
و لكن ما هو المسار القصير ؟
عندما تريد فتح ملف باستخدام نافدة الدوس تكتب الأمر Start ثم يتبعه مسار الملف مثلا C:\Users\Hakim\Desktop\New folder\Bethoven 9th Simphony.mp3
ولكن ستظهر رسالة خطأ تفيد أن الملف غير موجود !
مسار قصير دوس
Short Path Long Path VBScript CMD
والسبب هو أن الدوس لا يتمكن من قراءة المسارات التي بها فراغات حيث سيتوقف قراءة المسار عند C:\Users\Hakim\Desktop\New
والحل هو تحويل مسار الملف أو المجلد الى مسار قصير يقرأه الدوس و ذلك بانشاء
ملف في بي سكريبت
********************************************************************************************
والحل هو تحويل مسار الملف أو المجلد الى مسار قصير يقرأه الدوس و ذلك بانشاء
ملف في بي سكريبت
مسار قصير دوس
Short Path Long Path VBScript CMD
dim Fso,ks
dim UserBh
set Fso = CreateObject("Scripting.FileSystemObject")
Set Ks = CreateObject("WScript.Shell")
userbh = Ks.CurrentDirectory & "\ShortPath.txt"
p = inputbox(" Input File or Folder Path" ,"Get ShortPath")
if p = "" then wscript.quit
Mco = StrSHort(p)
If Fso.FileExists(userbh) Then
Set TextStream = Fso.OpenTextFile(userbh, 8) ' ForAppending = 8
Else
Set TextStream = Fso.CreateTextFile(userbh)
End If
TextStream.WriteLine Crlf & Mco
TextStream.close
wscript.sleep 300
Ks.run "cmd /c Start " & userbh,0,1
Function StrSHort(HstrB)
Dim f, myFolder
if fso.fileExists (HstrB) then
Set f = fso.Getfile(HstrB)
StrSHort = f.ShortPath
exit function
end if
if not(fso.folderExists (HstrB)) then
wscript.echo HstrB & " : File Not Found :-( !!"
wscript.quit
end if
Set f = fso.Getfolder(HstrB)
StrSHort = f.ShortPath
End Function
set Fso = nothing
set Ks = nothing
set f = nothing
dim UserBh
set Fso = CreateObject("Scripting.FileSystemObject")
Set Ks = CreateObject("WScript.Shell")
userbh = Ks.CurrentDirectory & "\ShortPath.txt"
p = inputbox(" Input File or Folder Path" ,"Get ShortPath")
if p = "" then wscript.quit
Mco = StrSHort(p)
If Fso.FileExists(userbh) Then
Set TextStream = Fso.OpenTextFile(userbh, 8) ' ForAppending = 8
Else
Set TextStream = Fso.CreateTextFile(userbh)
End If
TextStream.WriteLine Crlf & Mco
TextStream.close
wscript.sleep 300
Ks.run "cmd /c Start " & userbh,0,1
Function StrSHort(HstrB)
Dim f, myFolder
if fso.fileExists (HstrB) then
Set f = fso.Getfile(HstrB)
StrSHort = f.ShortPath
exit function
end if
if not(fso.folderExists (HstrB)) then
wscript.echo HstrB & " : File Not Found :-( !!"
wscript.quit
end if
Set f = fso.Getfolder(HstrB)
StrSHort = f.ShortPath
End Function
set Fso = nothing
set Ks = nothing
set f = nothing
**************************************************************************************
عند تشغيل الملف ستظهر نافذة تطالبك بادخال مسار الملف أو المجلد
مسار قصير دوس
Short Path Long Path VBScript CMDقم بادخال المسار و انقر OK
بعد ذلك سيظهر ملف باسم ShortPath.txt في نفس المجلد
افتح الملف وستجد المسار القصير للملف أو المجلد وسيكون بهذا الشكل C:\Users\Hakim\Desktop\NEWFOL~1\BETHOV~1.MP3
عندما تكتب في الدوس start C:\Users\Hakim\Desktop\NEWFOL~1\BETHOV~1.MP3 يتم تنفيذ الأمر دون خطأ :-)
ملاحظة انسخ الكود وألصقه في ملف نوت باد وقم بتسمية الملف مثل GetShortPath.vbs
فيديو يشرح العملية بشكل مبسط
Open Command Prompt in any Folder with administrator Privileges
فتح نافذة الدوس بصلاحية المدير في أي مجلد
فتح نافذة الدوس بصلاحية المدير في أي مجلد
ليست هناك تعليقات:
إرسال تعليق