كيف يمكنني إنشاء ملف اختصار (.lnk
) لملف آخر أو قابل للتنفيذ ، باستخدام الأدوات المساعدة لسطر الأوامر؟
هناك بعض المعلومات المفيدة للغاية على هذا الموقع: http://ss64.com/nt/shortcut.html
يبدو أن هناك بعض shortcut.exe
في بعض أدوات الموارد التي ليس لدي.
كما ذكر العديد من المواقع الأخرى ، لا توجد طريقة مضمنة للقيام بذلك من ملف دفعي.
ولكن يمكنك القيام بذلك من برنامج VB:
يتم تعليق الأقسام الاختيارية في VBscript أدناه:
Set oWS = WScript.CreateObject("WScript.Shell") sLinkFile = "C:\MyShortcut.LNK" Set oLink = oWS.CreateShortcut(sLinkFile) oLink.TargetPath = "C:\Program Files\MyApp\MyProgram.EXE" ' oLink.Arguments = "" ' oLink.Description = "MyProgram" ' oLink.HotKey = "ALT+CTRL+F" ' oLink.IconLocation = "C:\Program Files\MyApp\MyProgram.EXE, 2" ' oLink.WindowStyle = "1" ' oLink.WorkingDirectory = "C:\Program Files\MyApp" oLink.Save
لذا ، إذا كنت حقًا must تفعل ذلك ، فيمكنك حينئذٍ جعل ملف الدُفعات الخاص بك يكتب VB البرنامج النصي إلى القرص ، واستدعائه ثم أزله مرة أخرى. على سبيل المثال ، مثل ذلك:
@echo off
echo Set oWS = WScript.CreateObject("WScript.Shell") > CreateShortcut.vbs
echo sLinkFile = "%HOMEDRIVE%%HOMEPATH%\Desktop\Hello.lnk" >> CreateShortcut.vbs
echo Set oLink = oWS.CreateShortcut(sLinkFile) >> CreateShortcut.vbs
echo oLink.TargetPath = "C:\Windows\notepad.exe" >> CreateShortcut.vbs
echo oLink.Save >> CreateShortcut.vbs
cscript CreateShortcut.vbs
del CreateShortcut.vbs
يؤدي تشغيل البرنامج النصي أعلاه إلى اختصار جديد على سطح المكتب:
إليك مقتطفًا أكثر اكتمالا من مساهم مجهول (تم التحديث باستخدام إصلاح بسيط):
@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
SET LinkName=Hello
SET Esc_LinkDest=%%HOMEDRIVE%%%%HOMEPATH%%\Desktop\!LinkName!.lnk
SET Esc_LinkTarget=%%SYSTEMROOT%%\notepad.exe
SET cSctVBS=CreateShortcut.vbs
SET LOG=".\%~N0_runtime.log"
((
echo Set oWS = WScript.CreateObject^("WScript.Shell"^)
echo sLinkFile = oWS.ExpandEnvironmentStrings^("!Esc_LinkDest!"^)
echo Set oLink = oWS.CreateShortcut^(sLinkFile^)
echo oLink.TargetPath = oWS.ExpandEnvironmentStrings^("!Esc_LinkTarget!"^)
echo oLink.Save
)1>!cSctVBS!
cscript //nologo .\!cSctVBS!
DEL !cSctVBS! /f /q
)1>>!LOG! 2>>&1
إليك حل مشابه باستخدام powershell (أعرف ، ربما يمكنك إعادة كتابة الملف الدفعي بالكامل في PS ، ولكن إذا كنت ترغب في Get It Done ™ ...)
set TARGET='D:\Temp'
set SHORTCUT='C:\Temp\test.lnk'
set PWS=powershell.exe -ExecutionPolicy Bypass -NoLogo -NonInteractive -NoProfile
%PWS% -Command "$ws = New-Object -ComObject WScript.Shell; $s = $ws.CreateShortcut(%SHORTCUT%); $S.TargetPath = %TARGET%; $S.Save()"
قد تضطر إلى التوضيح تحديد المسار إلى PS في الملف الخاص بك ، ولكن يجب أن تعمل. هناك بعض السمات الإضافية التي يمكنك دمجها من خلال هذا الكائن ، أيضًا:
Name MemberType Definition
---- ---------- ----------
Load Method void Load (string)
Save Method void Save ()
Arguments Property string Arguments () {get} {set}
Description Property string Description () {get} {set}
FullName Property string FullName () {get}
Hotkey Property string Hotkey () {get} {set}
IconLocation Property string IconLocation () {get} {set}
RelativePath Property string RelativePath () {set}
TargetPath Property string TargetPath () {get} {set}
WindowStyle Property int WindowStyle () {get} {set}
WorkingDirectory Property string WorkingDirectory () {get} {set}
بالإضافة إلى shortcut.exe ، يمكنك أيضًا استخدام إصدار سطر الأوامر من NirCmd لإنشاء اختصار. http://nircmd.nirsoft.net/shortcut.html
ماذا عن استخدام الأمر mklink؟ C:\Windows\System32> mklink لإنشاء رابط رمزي.
MKLINK [[/ D] | [/ H] | [/ J]] رابط الهدف
/D Creates a directory symbolic link. Default is a file
symbolic link.
/H Creates a hard link instead of a symbolic link.
/J Creates a Directory Junction.
Link specifies the new symbolic link name.
Target specifies the path (relative or absolute) that the new link
refers to.
بعد كل المناقشات التي أجريناها هنا ، هذا هو الحل المقترح: تنزيل: http://optimumx.com/download/Shortcut.Zip استخراجه على سطح المكتب (على سبيل المثال). الآن ، لنفترض أنك تريد إنشاء اختصار لملف يسمى scrum.pdf (أيضًا على سطح المكتب):
(1). افتح CMD وانتقل إلى مجلد سطح المكتب
(2). المدى: Shortcut.exe /f:"%USERPROFILE%\Desktop\sc.lnk" /a:c /t:%USERPROFILE%\Desktop\scrum.pdf
سيؤدي هذا إلى إنشاء اختصار يسمى sc.lnk على سطح المكتب الخاص بك والذي سيشير إلى الملف الأصلي (scrum.pdf)
أعلم أن هذا الموضوع قديم ولكني أردت تقديم الحل البسيط الذي نجح لي.
قمت أولاً بنسخ ملف .ico إلى محرك الأقراص C: الخاص بي. ثم قمت بإنشاء الاختصار على سطح المكتب واضبط الرمز على ملف ico على محرك الأقراص C: الخاص بي. ثم قمت بنسخ كلاً من .ico والاختصار إلى مشاركة عبر شبكة يستطيع المستخدمون الوصول إليها. مرة واحدة هناك كتبت الملف الدفعي التالي لنسخ IO و .url إلى سطح مكتب windows 7 للمستخدمين. يؤدي هذا إلى إنشاء الاختصار على سطح مكتب جميع المستخدمين والاحتفاظ بملف الرمز الذي قمت بتعيينه عند إنشاء الاختصار. آمل أن يكون هذا يساعد شخص ما.
@echo off
Copy "\\sharename\folder\icon.ico" "C:\"
pause
copy "\\sharename\folder\shortcut.url" "C:\Users\All Users\Desktop"
pause
يتطلب هذا البرنامج المجاني وظيفة http://www.nirsoft.net/utils/nircmd2.html : (نموذج من صفحة الويب المذكورة) "Create a shortcut to Windows calculator under Start Menu->Programs->Calculators nircmd.exe shortcut "f:\winnt\system32\calc.exe" "~$folder.programs$\Calculators" "Windows Calculator"
النموذج الخاص بي الذي يجب تجربته: اختصار nircmd.exe "c:\windows\system32\calc.exe" "~ $ folder.desktop $" "Windows Calculator"