Гость
Форумы / Windows [игнор отключен] [закрыт для гостей] / выбор файлов в окне по типу WScript.BrowseForFolder / 2 сообщений из 2, страница 1 из 1
13.12.2020, 15:03
    #40027417
dab2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
выбор файлов в окне по типу WScript.BrowseForFolder
Знатоки! Пытаюсь найти выбор нескольких файлов из скрипта для обработки, нашёл вот этот вариант для выбора одного файла, но и этот способ мне показался излишне сложным:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
Function BrowseForFile() as String
    With CreateObject("WScript.Shell")
        Dim fso : Set fso = CreateObject("Scripting.FileSystemObject")
        Dim tempFolder : Set tempFolder = fso.GetSpecialFolder(2)
        Dim tempName : tempName = fso.GetTempName() & ".hta"
        Dim path : path = "HKCU\Volatile Environment\MsgResp"
	Dim BrowseForFile 
        With tempFolder.CreateTextFile(tempName)
            .Write "<input type=file name=f><script>f.click()" & _
            ";(new ActiveXObject('WScript.Shell'))" & _
            ".RegWrite('HKCU\\Volatile Environment\\MsgResp', f.value)" & _
            ";close();<" & "/" & "script>"
            .Close
        End With
        .Run tempFolder & "\" & tempName, 1, True
        BrowseForFile = .RegRead(path)
        .RegDelete path
        fso.DeleteFile tempFolder & "\" & tempName
    End With
End Function


Есть более простой выбор нескольких файлов в скрипте vbs?

============================================================================================================
"О, сколько нам открытий чудных готовит просвещения дух, и опыт - сын ошибок трудных, и гений - парадоксов друг, и случай - бог изобретатель" (Пушкин, однако).
...
Рейтинг: 0 / 0
14.12.2020, 22:18
    #40027789
dab2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
выбор файлов в окне по типу WScript.BrowseForFolder
Нашёл код более вразумительный, но у меня не работает почему-то.
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
' *********************************************************** 
' http://scriptcoding.ru/2013/01/16/sozdaniye-dialogovoho-okna/ 
' Создание диалогового окна для выбора файла на VBScript 
' ************************************************************ 
Option Explicit 
' Флаги. 
Const BIF_returnonlyfsdirs       = &H0001 
Const BIF_dontgobelowdomain           = &H0002 
Const BIF_statustext                 = &H0004 
Const BIF_returnfsancestors      = &H0008 
Const BIF_editbox                     = &H0010 
Const BIF_validate                    = &H0020 
Const BIF_browseforcomputer  = &H1000 
Const BIF_browseforprinter      = &H2000 
Const BIF_browseincludefiles   = &H4000 

Dim file 

file = BrowseForFoldr("Выберите файл или папку", BIF_returnonlyfsdirs + BIF_browseincludefiles, "") 

If file = "-5" Then 
  WScript.Echo "Выбран файл в корневой папке" 
Else
  If file = "-1" Then 
    WScript.Echo "Объект не выбран" 
  Else 
    WScript.Echo "Объект: ", file 
  End if
End If

' Получение полного пути к объекту 
Function BrowseForFoldr(title, flag, dir) 
On Error Resume Next 
Dim oShell, oItem, tmp 
Set oShell = WScript.CreateObject("Shell.Application") 
' Вызвать диалоговое окно Browse For Folder. 
Set oItem = oShell.BrowseForFolder(&H0, title, flag, dir) 

If Err.Number <> 0 Then 
  If Err.Number = 5 Then 
    BrowseForFoldr="-5" 
    Err.Clear 
    Set oShell = Nothing 
    Set oItem = Nothing 
    Exit Function 
  End If 
End If 

' Теперь попытаемся получить полный путь. 
BrowseForFoldr = oItem.ParentFolder.ParseName(oItem.title).Path 
'Обработка нажатия кнопки Cancel и выбора диска. 
If Err<> 0 Then 
  If Err.Number = 424 Then                 
  'Обработать кнопку Cancel. 
    BrowseForFoldr ="-1" 
  Else 
    Err.Clear 
    'Обработать ситуацию, в которой пользователь выбирает диск. 
    tmp = InStr(1, oItem.title, ":") 
    If tmp > 0 Then          
    ' Символ ":" найден; взять два символа и добавить \. 
      BrowseForFoldr = Mid(oItem.Title, (tmp - 1), 2) & "\" 
    End If 
  End If 
End If 

Set oShell = Nothing 
Set oItem = Nothing 

On Error GoTo 0 
End Function


[пишет вот это]
---------------------------
Windows Script Host
---------------------------
Объект не выбран
---------------------------
ОК
---------------------------
...
Рейтинг: 0 / 0
Форумы / Windows [игнор отключен] [закрыт для гостей] / выбор файлов в окне по типу WScript.BrowseForFolder / 2 сообщений из 2, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]