我知道已经有一个类似的主题,但我不想使用VB脚本。
我希望您能在DOS中使用命令行创建快捷方式。
请提供一些示例,那将非常好。
谢谢!
AA
我知道已经有一个类似的主题,但我不想使用VB脚本。
我希望您能在DOS中使用命令行创建快捷方式。
请提供一些示例,那将非常好。
谢谢!
AA
如果不调用外部程序,您无法在.bat文件中创建快捷方式。
然而,自Windows 2000以来的每个版本都具有内置脚本语言,称为 Windows Script Host
这是我几年前编写的一个小型WSH脚本,可以从.bat文件中调用,只需将此文本保存为 shortcut.wsf,其中包含脚本中的使用信息。
<package>
<job id="MakeShortcut">
<runtime>
<description>Create a shortcut (.lnk) file.</description>
<named
name = "Target"
helpstring = "the target script"
type = "string"
required = "true"
/>
<named
name = "Args"
helpstring = "arguments to pass to the script"
type = "string"
required = "false"
/>
<unnamed
name = "basename"
helpstring = "basename of the lnk file to create"
type = "string"
required = "false"
/>
</runtime>
<script language="JScript">
if ( ! WScript.Arguments.Named.Exists("Target"))
{
WScript.Arguments.ShowUsage();
WScript.Quit(2);
}
target = WScript.Arguments.Named.Item("Target");
WScript.Echo("target " + target);
args = WScript.Arguments.Named.Item("Args");
WScript.Echo("args " + args);
base = WScript.Arguments.Unnamed.Item(0);
WScript.Echo("base " + base);
fso = WScript.CreateObject("Scripting.FileSystemObject");
//path = fso.GetParentFolderName(WScript.ScriptFullName);
path = fso.GetAbsolutePathName(".");
WScript.Echo("path = " + path);
Shell = WScript.CreateObject("WScript.Shell");
short = fso.BuildPath(path,base);
if ( ! fso.GetExtensionName(base))
short = short + ".lnk";
link = Shell.CreateShortcut(short);
link.TargetPath = fso.BuildPath(path, target);
if (args != null && args != "")
link.Arguments = args;
else
link.Arguments = base;
//link.Description = "Sound Forge script link";
//link.HotKey = "ALT+CTRL+F";
//link.IconLocation = fso.BuildPath(path, target) + ", 2";
//link.WindowStyle = "1"
//link.WorkingDirectory = path;
link.Save();
</script>
</job>
</package>
不带任何参数运行它以获取用法
c:\> shortcut.wsf
Microsoft (R) Windows Script Host Version 5.6
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.
Create a shortcut (.lnk) file.
Usage: shortcut.wsf /Target:value [/Args:value] [basename]
Options:
Target : the target script
Args : arguments to pass to the script
basename : basename of the lnk file to create
mklink /D c:\vim "C:\Program Files (x86)\Vim"
Cygwin的ln - s
http://en.wikipedia.org/wiki/Symbolic_link#Cygwin_symbolic_links
现在可以使用PowerShell完成,这比VBscript要好一些。而且PowerShell可以从.bat
/ .cmd
文件中调用:
powershell "$s=(New-Object -COM WScript.Shell).CreateShortcut('%userprofile%\Desktop\mylink.lnk'); $s.TargetPath='C:\Path\to\your.exe'; $s.Save()"
这里还有另一个例子:https://ss64.com/nt/shortcut.html#e
另请参阅