在用户桌面上创建当前文件夹的快捷方式

时间:2012-10-03 14:49:23

标签: vba batch-file vbscript programming-languages shortcut

我想自动创建用户桌面上当前文件夹的快捷方式。我正在使用的一些用户不知道如何创建快捷方式或如何拖放文件夹。我只想创建一个名为“点击我在你的桌面上为这个文件创建一个快捷方式”的文件,该文件可以在我想要的任何文件夹中使用。

例如,如果我运行C:\ myRandomFolder \ CLICK ME.whatever,我希望它在“D:\ Documents and Settings \%username%”上创建名为“myRandomFolder”的“C:\ myRandomFolder”的快捷方式\桌面”。

我想知道我是否更好地使用批处理文件(.bat),VB脚本(.vbs)或任何其他脚本语言来执行此操作。这样做最简单,最好的方法是什么?

3 个答案:

答案 0 :(得分:3)

最好的方法似乎是VBS脚本。以下是我最终的工作:

Option Explicit
On Error Resume Next

Private WshShell
Private strDesktop
Private oShellLink
Private aSplit

set WshShell = WScript.CreateObject("WScript.Shell")
strDesktop = WshShell.SpecialFolders("Desktop")
aSplit = Split(WScript.ScriptFullName, "\")

set oShellLink = WshShell.CreateShortcut(strDesktop & "\" & aSplit(Ubound(aSplit) - 1) & ".lnk")
oShellLink.TargetPath = Replace(WScript.ScriptFullName, WScript.ScriptName, "")
oShellLink.WindowStyle = 1
oShellLink.Description = "Shortcut Script"
oShellLink.WorkingDirectory = Replace(WScript.ScriptFullName, WScript.ScriptName, "")
oShellLink.Save 

MsgBox "Shortcut to " & Replace(WScript.ScriptFullName, WScript.ScriptName, "") & " added yo your desktop!"

答案 1 :(得分:2)

您可以查看这些链接 - OneTwoThree

如果其他所有内容都无法更好地开始向用户发送this link,请不要冒犯他们,但要让他们更加了解。

答案 2 :(得分:1)

很棒的代码!出于好奇,因为这适用于脚本当前所在的目录,您是否有办法让它显示在每个目录中?否则,在学习这个和学习以本机方式创建快捷方式之间似乎没有太大区别。您仍然需要将脚本拖放到当前文件夹中,不是吗?

在寻求解决方案的过程中,我尽可能让用户导航并选择他们需要链接的特定文件。我不知道你是否会对此有任何用处。

Dim diaSelectFile
    Set diaSelectFile = Application.FileDialog(msoFileDialogFilePicker)

diaSelectFile.Show

strPickedFile = diaSelectFile.SelectedItems(1)

Set diaSelectFile = Nothing

Dim oWsh
Dim myshortcut
Dim oShortcut
Dim strSplitFileName
Dim strTarget
Dim nShortName

Set oWsh = CreateObject("WScript.Shell")

strSplitFileName = Split(strPickedFile, "\")
nShortName = UBound(strSplitFileName)
strTarget = strSplitFileName(nShortName)

myshortcut = "C:\users\%USERNAME%\Desktop\" & strTarget & " - Shortcut" & ".lnk"

Set oShortcut = oWsh.CreateShortcut(myshortcut)

With oShortcut
    .TargetPath = strPickedFile
    .Save
End With

Set oWsh = Nothing
Set oShortcut = Nothing

但是,这再次比右键单击并向桌面发送快捷方式更复杂。谁是需要这个的用户?我知道我有一些贪得无厌的朋友,他们正在努力解决我们在电脑上考虑的基本任务。我非常有兴趣知道你提出的剧本是否真的有助于你的客户。