Read External File in VBScript


Ok, this question it very simple just any one example.

I whant read one external file (Data.log). This file have four column and many lines like this.:

    First Name        Last Name     Movielphone            HomePhone
         Peter             Gomez     (305)555-5555        (305) 444-4444
         Anni              Gomez     (305)555-5555        (305) 444-4444

In this script have four variable   First Name, Last Name, Movielphone and  HomePhone. I need to read all value in my external file for create other process.
Example.:

WshS.run ".\delprofi.bat " & First Name & Last Name & Movielphone & HomePhone

Thanks

HelpDeskCentennialrdAsked:
Who is Participating?
 
JRockSolidCommented:
Yes, I have interest in this and no points was not what i had in mind.  I thought more like.... A response and another solution if he didnt have tab delimeted files, but definately NOT no points.
0
 
Arthur_WoodCommented:
You can use the Windows Shell Runtime, using the FileSSystemObject:

Dim fso

Set fso = CreateObject("Scripting.FileSystemObject")

you can learn about how to use the FileSystemObject at this Microsoft link:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/a3f17c7a-69a2-47d8-8b40-6a74646f4e1d.asp

and also, for the complete overview:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/0fa93e5b-b657-408d-9dd3-a43846037a0e.asp

AW
0
 
HelpDeskCentennialrdAuthor Commented:
Thanks for your comments but my questions it more How I can Read one external file and get the value for my variables if the data to be in columns like my example.
0
Cloud Class® Course: Certified Penetration Testing

This CPTE Certified Penetration Testing Engineer course covers everything you need to know about becoming a Certified Penetration Testing Engineer. Career Path: Professional roles include Ethical Hackers, Security Consultants, System Administrators, and Chief Security Officers.

 
JRockSolidCommented:
Are those tab delimited?  Ex   FirstName <TAB> LastName
0
 
JRockSolidCommented:
Does This Work
------------------------------Untested ...Very Busy today

Const objDBlist = "C:\text.txt"
Const ForReading = 1
Const BatchFile = "C:\Batch.bat"

Public LastName(),FirstName(),Movielphone(),HomePhone()
x=0
Set Wshell = CreateObject("Wscript.Shell")
Set objTextFile = objFSO.OpenTextFile(objPClist, ForReading) '1 ip or hostname per line
      Do Until objTextFile.AtEndOfStream
            strLine = Split(objTextFile.readline,VBtab)
            
            ReDim Preserve FirstName(x)
            ReDim Preserve LastName(x)
            ReDim Preserve Movielphone(x)
            ReDim Preserve HomePhone(x)
            
            LastName(x)= strLine(0)
            FirstName(x) = strLine(1)
            Movielphone(x) = strLine(2)
            HomePhone(x) = strLine(3)
            
            x = x + 1
      Loop
      
For z = 0 To (x -  1)
      Space = " "
      Arguments = Space & Firstname(z) & Space & LastName(z) & Space &  Movielphone(z) & Space & HomePhone(z)
      Wshell.Run (BatchFile & Arguments)
Next
------------------------------------------------------------
0
 
HelpDeskCentennialrdAuthor Commented:

Could you check this line ?

Set objTextFile = objFSO.OpenTextFile(objPClist, ForReading) '1 ip or hostname per line

0
 
JRockSolidCommented:
What did it say when it Sorry, Made a few changes...That what happens when you rush :[
---------------------------
Const objDBlist = "C:\text.txt"
Const ForReading = 1
Const BatchFile = "C:\Batch.bat"

Public LastName(),FirstName(),Movielphone(),HomePhone()
x=0
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set Wshell = CreateObject("Wscript.Shell")
Set objTextFile = objFSO.OpenTextFile(objDBlist, ForReading) '1 ip or hostname per line
     Do Until objTextFile.AtEndOfStream
          strLine = Split(objTextFile.readline,VBtab)
         
          ReDim Preserve FirstName(x)
          ReDim Preserve LastName(x)
          ReDim Preserve Movielphone(x)
          ReDim Preserve HomePhone(x)
         
          FirstName(x)= strLine(0)
          LastName(x) = strLine(1)
          Movielphone(x) = strLine(2)
          HomePhone(x) = strLine(3)
         
          x = x + 1
     Loop
     
For z = 0 To (x -  1)
     strSpace = " "
     Arguments = strSpace & Firstname(z) & strSpace & LastName(z) & strSpace &  Movielphone(z) & strSpace & HomePhone(z)
     Wshell.Run (BatchFile & Arguments)
Next
-------------------------------------------

Did you get watchdog?
0
 
JRockSolidCommented:
A couple things about this script....
1) It assumes that these fields are seperated by TABS
2) If there is an empty line in your file ... It will blow up
3) If the files dont exist, it will blow up
4) If the user doesnt have permission to the file it will blow up
5) If there is a line with a missing entry it will blow up
6) If you strap a bomb to it, IT WILL BLOW UP!!!
0
 
HelpDeskCentennialrdAuthor Commented:
I supose when you say IT WILL BLOW UP you takin about this error?

LecturaFile.vbs(21, 11) Microsoft VBScript runtime error: Subscript out of range: '[number: 3]'
0
 
HelpDeskCentennialrdAuthor Commented:
yes, i have my copy of watdog
0
 
JRockSolidCommented:
No, if none of those situations were met then it is something unaccounted for.
Tell me your line 21 so I can sync up with yours.
0
 
JRockSolidCommented:
If it is where i think it is then double check these:

1) It assumes that these fields are seperated by TABS
2) If there is an empty line in your file ... It will blow up
0
 
JRockSolidCommented:
AND

All 4 fields must be present :

First Name<TAB>Last Name<TAB>Movielphone<TAB>HomePhone
0
 
HelpDeskCentennialrdAuthor Commented:

If i want to ski the errors, what can I do.?
0
 
JRockSolidCommented:
Get some skis and jump dude?!?!  I am unsure of what you want here. If there were errors or problems you could give the experts chances to fix them and if you dont its on you.  On the other hand if i have completely misunderstood your comment I am sorry.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.