VBScript 将 link 发送到文件和文件夹

VBScript to send a link to file AND folder

在 Windows 7 中,我有一个 VBScript,当您在 Windows 资源管理器中右键单击时,它会在 Outlook 中创建一封带有 link 文件的电子邮件。该脚本是 运行,方法是创建它的快捷方式并将其添加到 %userprofile%\SendTo(当您右键单击该文件时,它会显示在“发送到”中)。目标是能够将 link 发送到文件和包含它的文件夹,而不是将其作为附件发送。它工作正常,除了它总是直接给文件一个 link 。我如何修改它以便它也为第二行中的文件夹提供 link?

Const olMailItem = 0
Const olFolderInbox = 6

If WScript.Arguments.Count = 0 Then
WScript.Quit
End If

Set objWMIService = GetObject("winmgmts:\.\root\cimv2")

Set colItems = objWMIService.ExecQuery _
    ("Select * From Win32_Process Where Name = 'outlook.exe'")

If colItems.Count = 0 Then
    Set objOutlook = CreateObject("Outlook.Application")
    Set objNamespace = objOutlook.GetNamespace("MAPI")
    Set objFolder = objNamespace.GetDefaultFolder(olFolderInbox)
objFolder.Display
End If

strFile = WScript.Arguments.Item(0)

Set objOutlook = CreateObject("Outlook.Application")
Set objItem = objOutlook.CreateItem(olMailItem)
objItem.Subject = "Here is a link to a file..."
objItem.HTMLBody = "Link to the file: <A HREF=" & Chr(34) & "file://" & strFile & Chr(34) & ">" & strFile & "</A><BR>Link to the folder: <A HREF=" & Chr(34) & "file://" & strFile & Chr(34) & ">" & strFile & "</A>"
objItem.Display

可能是一个简单的答案,但我一直没弄明白。任何帮助,将不胜感激!

FileSystemObject 对象及其 GetParentFolderName 方法可以提供帮助。请注意,对于使用的任何方法(在下一个脚本中)保持:方法仅适用于提供的路径字符串。它不会尝试解析路径,也不会检查指定路径是否存在。

option explicit

Dim strFile, FSO, oFile

If WScript.Arguments.Count > 0 Then
  strFile = WScript.Arguments.Item(0)
Else
  strFile = "D:\Remote\bat\COCL\bu bu bu\somefile.ext"
End If

Set FSO = CreateObject("Scripting.FileSystemObject")

Wscript.Echo "FSO 'path' methods" & vbNewLine & "---------------------" _
   & vbNewLine & "GetAbsolutePathName: " & FSO.GetAbsolutePathName( strFile) _
   & vbNewLine & "GetParentFolderName: " & FSO.GetParentFolderName( strFile) _
   & vbNewLine & "GetDriveName: " & FSO.GetDriveName( strFile) _
   & vbNewLine & "GetBaseName: " & FSO.GetBaseName( strFile) _
   & vbNewLine & "GetExtensionName: " & FSO.GetExtensionName( strFile) _
   & vbNewLine & "GetFileName: " & FSO.GetFileName( strFile)

Set FSO = Nothing
Wscript.Quit