如何.lnk
使用命令行实用程序创建指向另一个文件或可执行文件的快捷方式文件()?
(.ink file)
,因为有些混乱。我修改了问题以反映Shantanu的评论。虽然确实提供了一种制作“快捷方式”的方法,但它无法回答这个特定问题。
如何.lnk
使用命令行实用程序创建指向另一个文件或可执行文件的快捷方式文件()?
(.ink file)
,因为有些混乱。我修改了问题以反映Shantanu的评论。虽然确实提供了一种制作“快捷方式”的方法,但它无法回答这个特定问题。
Answers:
此站点上有一些非常有用的信息: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
因此,如果确实需要执行此操作,则可以使批处理文件将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
SET Esc_LinkTarget=%0
则必须"
从echo oLink.TargetPath = oWS.ExpandEnvironmentStrings^(!Esc_LinkTarget!^)
Wscript.Arguments
来获取命令行参数要好得多……大声笑
这是使用Powershell的类似解决方案(我知道,您可能可以在PS中重新编写整个批处理文件,但是如果您只是想完成它™...)
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)
这个免费程序具有必需的功能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计算器”
我知道这个话题很老,但是我想提供对我有用的简单解决方案。
我首先将.ico文件复制到了C:驱动器。然后,我在桌面上创建了快捷方式,并将图标设置为C:驱动器上的ico文件。然后,我将.ico和快捷方式都复制到用户可以访问的网络共享中。到达那里后,我编写了以下批处理文件,将ico和.url复制到用户Windows 7桌面。这将在所有用户桌面上创建快捷方式,并保留我在创建快捷方式时设置的图标文件。我希望这可以帮助别人。
@echo off
Copy "\\sharename\folder\icon.ico" "C:\"
pause
copy "\\sharename\folder\shortcut.url" "C:\Users\All Users\Desktop"
pause