0

在从 Windows 资源管理器上下文菜单调用 VBScript 的延续中,我设法从 Windows 资源管理器中的 SendTo 运行了一个 VBScript 文件。

我已更改代码以将调用脚本的文件复制到我的 Temp 文件夹。新问题是,如果路径超过 256 个字符,我无法循环通过 WScript.Arguments 来获取所有内容。是否有另一种方法来获取完整路径(包括文件名和扩展名)?

Option Explicit

Call OpenDocuWorksFile

Sub OpenDocuWorksFile()
    Const sTitle = "Open DocuWorks File"
    
    Dim iArgumentsCount
    Dim iArgument
    Dim sFilePath
    Dim sTempFolder
    Dim oFileScriptingObject
    Dim sFileName
    Dim oShell
    
    iArgumentsCount = WScript.Arguments.Count
    
    On Error Resume Next
    
    For iArgument = 0 To iArgumentsCount
        
        sFilePath = sFilePath & WScript.Arguments(iArgument)
        
    Next
    
    On Error GoTo 0
    
    Set oFileScriptingObject = CreateObject("Scripting.FileSystemObject")
    
    With oFileScriptingObject
        
        sFileName = .GetFileName(sFilePath)
        
        sTempFolder = oFileScriptingObject.GetSpecialFolder(2) 'Temp Folder
        
        If .GetExtensionName(sFileName) = "xdw" Then
            
            .CopyFile sFilePath, sTempFolder & "\", True 'Overwrite
            
            Set oShell = CreateObject("Shell.Application")
            
            oShell.Open sTempFolder & "\" & sFileName
            
        Else
            
            MsgBox "Please select a DocuWorks file.(.xdw)", vbCritical, sTitle
            
        End If
        
    End With
    
    Set oFileScriptingObject = Nothing
    
    Set oShell = Nothing
    
End Sub
4

0 回答 0