2

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

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

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

4

2 回答 2

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!"
于 2012-10-04T17:59:58.557 回答
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

不过,这再次感觉比右键单击并将快捷方式发送到桌面更复杂。谁是需要这个的用户?我知道我有一些自闭症的朋友,他们为我们可能认为的计算机上的基本任务而苦苦挣扎。我肯定很想知道您提出的脚本是否真的对您的客户有所帮助。

于 2012-10-04T20:16:39.697 回答