1

Тема: VBS: Запись в переменную из csv файла

Есть csv файл, который содержит в себе строки
IP,L,P
Надо сделать так чтобы скрипт записывал в переменные strIP, strLogin,strPass значения из файла, а за тем запускал скрипт, который будет работать с этими переменными, на данный момент есть только чтение csv. Прошу помочь...

' ReadCSVFile.vbs

Option Explicit

Dim adoCSVConnection, adoCSVRecordSet, strPathToTextfile
Dim strCSVFile, k

' Specify path to CSV file.
strPathToTextFile = "C:\"

' Specify CSV file name.
strCSVFile = "file.csv"

' Open connection to the CSV file.
Set adoCSVConnection = CreateObject("ADODB.Connection")
Set adoCSVRecordSet = CreateObject("ADODB.Recordset")

' Open CSV file with header line.
adoCSVConnection.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
    "Data Source=" & strPathtoTextFile & ";" & _
    "Extended Properties=""text;HDR=NO;FMT=Delimited"""

adoCSVRecordset.Open "SELECT * FROM " & strCSVFile, adoCSVConnection

' Read the CSV file.
Do Until adoCSVRecordset.EOF
    ' Display all fields.
    For k = 0 To adoCSVRecordset.Fields.Count - 1
        Wscript.Echo adoCSVRecordset.Fields(k).Value
       Rem ReadLine
    Rem strIP=fdf
    Rem strLog=
    Next
    adoCSVRecordset.MoveNext
Loop

' Clean up.
adoCSVRecordset.Close
adoCSVConnection.Close

2

Re: VBS: Запись в переменную из csv файла

Код оформлен тэгом «code».

3

Re: VBS: Запись в переменную из csv файла

Убрал Ado, т.к. не нужно оно мне тут.

Dim objFSO, objF
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objF = objFSO.OpenTextFile("file.csv", 1, true, 0)

Do while NOT objF.AtEndOfStream

strLine = objF.ReadLine 
MsgBox strLine
Loop
objF.Close

Но задача та же осталась, найти первую, вторую и третью запятую и соответственно то что идет до первой сделать как значение strIP, до второй strLogin, после второй strPass.

4

Re: VBS: Запись в переменную из csv файла

MikhailSM, воспользуйтесь функцией «Split()», дабы разложить строку по запятым в массив.

5

Re: VBS: Запись в переменную из csv файла

Получилось только выдернуть то, что после первой запятой, как сплитом выдернуть то, что идет до второй и после второй, либо то что после первой?

6

Re: VBS: Запись в переменную из csv файла

Сделал сам.

Dim objFSO, objF, arr
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objF = objFSO.OpenTextFile("file.csv", 1, true, 0)

Do while NOT objF.AtEndOfStream

strLine = objF.ReadLine 
arr = Split(strLine, ",")


MsgBox strLine
MsgBox arr(0)
MsgBox arr(1)
MsgBox arr(2)
Loop
objF.Close

7

Re: VBS: Запись в переменную из csv файла

Осталась последняя задача. Как запустить программу с параметрами, которые я отпарсил.

8

Re: VBS: Запись в переменную из csv файла

MikhailSM, для начала стоит привести командную строку целиком, как бы Вы запускали её без VBScript.

9

Re: VBS: Запись в переменную из csv файла

c:\cscript myscript.vbs

10

Re: VBS: Запись в переменную из csv файла

Dim objFSO, objF, arr
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objF = objFSO.OpenTextFile("file.csv", 1, true, 0)

Do while NOT objF.AtEndOfStream

strLine = objF.ReadLine 
arr = Split(strLine, ",")
MsgBox arr(0)
MsgBox arr(1)
MsgBox arr(2)
Loop
objF.Close


Set objShell = CreateObject("Shell.Application")
objShell.ShellExecute "c:\cscript myscript.vbs"

Это в общем виде, а как сделать чтобы мой второй скрипт запустился с переменными отпарсеными я не знаю(

11

Re: VBS: Запись в переменную из csv файла

Сделал сам. Спасибо, за наводки.