【问题标题】:Create a shortcut to current folder on user's desktop在用户桌面上创建当前文件夹的快捷方式
【发布时间】:2012-10-03 14:49:23
【问题描述】:

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

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

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

【问题讨论】:

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


    【解决方案1】:

    最后似乎最好的方法是使用 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!"
    

    【讨论】:

      【解决方案2】:

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

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

      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
      

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

      【讨论】:

      • 感谢您的意见。在我的办公室,大多数人都用两根手指打字(如果你明白我的意思的话)。然而,秘书稍微好一点,足以将 VBS 剪切/粘贴到正确的文件夹中。她只需通过电子邮件向所有员工发送指向 VBS 的直接链接并附上一些说明,快捷方式将自动添加到他们的桌面。
      • 至于在所有(子)目录中显示VBS,可以很容易地将脚本复制到每个子目录中并将其命名为_shortcut.vbs。根目录上可能有一个_shortcutGen.vbs,它会生成当前的_shortcut.vbs 并将其复制到所有子文件夹中。
      猜你喜欢
      • 1970-01-01
      • 2011-06-21
      • 2013-03-14
      • 2011-02-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多