2015-08-05 7 views
0

Как получить доступ к элементу в коллекции? Следующий код дает мне ошибку в последней строке.Как получить элемент коллекции по индексу?

<package> 
<job id="NonDisabledServicesCollecting"> 
<COMMENT> 
************************************************************ 
1 comment 
2 
3 
************************************************************ 
</COMMENT> 
    <script language="VBScript"> 
flash_folder="I:\123\" 
str_flash_folder_colFiles = "" 
num_flash_folder_colFiles = 0 
Set flash_folder_colFiles = CreateObject("Scripting.FileSystemObject").GetFolder(flash_folder).Files 
WScript.Echo flash_folder_colFiles(1) 
For Each flash_folder_objFile in flash_folder_colFiles 
    num_flash_folder_colFiles = num_flash_folder_colFiles + 1 
    str_flash_folder_colFiles = str_flash_folder_colFiles + cstr(num_flash_folder_colFiles) + " " + flash_folder_objFile.Name + vbCrLf 
Next 

Dim response 
Do 
    response = InputBox("Please enter the number that corresponds to your selection:" + vbCrLf + str_flash_folder_colFiles, "Choose DLL to copy...") 
    If response = "" Then WScript.Echo "Input is empty." 'Detect Cancel 
    If IsNumeric(response) Then Exit Do     'Detect value response. 
    WScript.Echo "You must enter a numeric value." 
Loop 
selected_flush_DLL = flash_folder + flash_folder_colFiles(cint(response)) 
WScript.Echo selected_flush_DLL 

    </script> 
</job> 
</package> 
+0

Что вы пытались и какая ошибка вы получаете. –

+0

--------------------------- Windows Script Host ------------------- - ------- Сценарий: I: \ 123 \ scr.wsf Строка: 15 Символ: 2 Ошибка: неверный аргумент или вызов кода процедуры: 800A0005 Источник: ошибка выполнения Microsoft VBScript ------- ---- ---------------- ОК --------------------------- – testnameC04

+0

I необходимо, чтобы WScript.Echo показывал мне путь к файлу, который выбран, введя указатель этого файла в папку «I: \ 123» – testnameC04

ответ

1

Коллекция .files не может обращаться по индексу:

>> Set oFiles = goFS.GetFolder(".\").Files 
>> n = oFiles(0).Name 
>> 
Error Number:  5 
Error Description: Invalid procedure call or argument 

Вам нужно для каждого цикла, чтобы заполнить случайный набор доступа, например, a Массив:

>> Set oFiles = goFS.GetFolder(".\").Files 
>> ReDim aFiles(oFiles.Count - 1) 
>> i = 0 
>> For Each oFile In oFiles 
>>  Set aFiles(i) = oFile 
>> Next 
>> n = aFiles(0).Name 
>> WScript.Echo n 
>> 
31823568.notes 
Смежные вопросы