2013-12-02 3 views
2

Имеет ли VBScript функцию для получения пути к текущему выбранному файлу в Проводнике? Если да, то какова функция? Я ищу что-то вродеКак получить путь к текущему выбранному файлу

Set fileObj = CreateObject("Scripting.FileSystemObject") 
dim filepath 
filepath = fileObj.GetCurrentSelection() 'doesn´t exist 
dim result 
result = filepath 'communicate with LiveCode 
+2

Нет, это не так. В зависимости от того, что вы действительно хотите достичь, вы можете добавить запись контекстного меню, которая вызывает VBScript с указанием пути к выбранному объекту. Если вы объясните, для чего вам это нужно, вы можете получить более качественные ответы. –

+0

Спасибо за ответ. Я хотел бы добавить некоторые скриптовые возможности к моему существующему программному обеспечению и позволить получать информацию о текущем выбранном файле, дублировать выбранный файл и другие основные операции. Я подумаю об использовании контекстного меню. – Mark

+1

Если вы выбрали файл/папку с помощью Browse Folder, то легко получить выбранный файл. –

ответ

4

Я написал простой пример.
Имейте в виду, что может быть более одного открытого окна проводника Windows, и это отобразит их все.

Function GetSelectedFiles() 'Returns paths as array of strings 
    Dim FileList, Window, SelectedItem 
    'avoid duplicates by storing paths in dictionary keys 
    Set FileList = CreateObject("Scripting.Dictionary") 

    With CreateObject("Shell.Application") 
     For Each Window In .Windows 
      'skip IE Windows 
      If InStr(1, Window.FullName, "iexplore.exe", vbTextCompare) = 0 Then 
       For Each SelectedItem In Window.Document.SelectedItems 
        FileList(SelectedItem.Path) = Null 
       Next 
      End If 
     Next 
    End With 

    GetSelectedFiles = FileList.Keys 'array of paths 
End Function 

MsgBox "Click OK after selecting the items", _ 
     vbOKOnly Or vbInformation, "Select a few items" 

Dim SelectedFiles 
    SelectedFiles = GetSelectedFiles 

MsgBox "You selected: " & vbNewLine & vbNewLine & _ 
     Join(SelectedFiles, vbNewLine), vbOKOnly Or vbInformation, "Selected Items" 

'loop through array 
'Dim FileItem 
'For Each FileItem In SelectedFiles 
' WScript.Echo FileItem 
'Next 
+0

Спасибо. Я собираюсь попробовать это. Я вернусь к вам. – Mark

+0

Я получаю следующую ошибку: 'Script: C \ Users \ USER \ Desktop \ path.vbs, Строка: 10, Char: 17, Ошибка: объект не поддерживает это свойство или метод: 'Windows.Document .SelectedItems ', Код: 800A01B6, Источник: ошибка времени выполнения Microsoft VBScript'. Это в Windows 8. Я пока не могу дать вам награду, но это, безусловно, интересный сценарий. – Mark

+1

@Mark Я должен сказать, что я никогда раньше не использовал этот сценарий, исследовал для вас. Честно говоря, я не знаю, что вызывает ошибку при каких обстоятельствах. Просто могу сказать, что в итератированном объекте Document нет метода SelectedItems, но пока не знаю. Я тестировал сценарий только на Windows 2008 R2 (x64), Windows 2008 x86, Windows 8.1 Pro x64 (мой dev pc) и Windows 8 Pro x86 без ошибок. По-видимому, этого недостаточно. Я попытаюсь воспроизвести ошибку в свободное время. Возможно, вы можете сказать, какие экземпляры Windows или Internet Explorer были открыты во время работы скрипта. Это может быть полезно. –

0

попробовать это с помощью этого вы можете получить путь к выбранной в данный момент file.you также необходимо

Set objFS=CreateObject("Scripting.FileSystemObject") 
    Set objArgs = WScript.Arguments 
    strFile= objArgs(0) 
    Set objFile = objFS.OpenTextFile(strFile) 
    Set objFile = objFS.GetFile(strFile) 
    WScript.Echo objFile.Path 
+0

Ошибка: Подзаголовок за пределами допустимого диапазона, Код: 800A0009, Источник: ошибка времени выполнения Microsoft VBScript, строка 3, char 4. – Mark

+0

вам нужно запустить код в командной строке –

+0

, а команда: c: \ test> cscript // nologo myfile.vbs myfile –

 Смежные вопросы

  • Нет связанных вопросов^_^