Solved

VB Script to echo a list of file names to a text file is not working

Posted on 2014-04-03
10
663 Views
Last Modified: 2014-04-17
VB Script to echo a list of file names to a text file is not working. Running it results in a VBScript runtime error (screen shot attached). I need help making this work.

Here is my code:

cscript FileList.vbs > "\\Domain-01.com\DFS$\care-one\groups\CORPORATE\Regional Accounting\Monthly Reports\Region Accounting\2014\03 March 2014\NJ\AP\FileList.txt"
Set objFSO = CreateObject("Scripting.FileSystemObject")
objStartFolder = "\\Domain-01.com\DFS$\care-one\groups\CORPORATE\Regional Accounting\Monthly Reports\Region Accounting\2014\03 March 2014\NJ\AP"

Set objFolder = objFSO.GetFolder(objStartFolder)

Set colFiles = objFolder.Files

Set objFile = objFSO.CreateTextFile(outFile,True)
For Each objFile in colFiles
Wscript.Echo objFile.Name
Next
VBS-error.png
0
Comment
Question by:janthonyn
  • 5
  • 5
10 Comments
 
LVL 67

Expert Comment

by:sirbounty
ID: 39976819
Any reason why you can't do it all within the script?

Set objFSO = CreateObject("Scripting.FileSystemObject")
outfile="filelist.txt"
objStartFolder = "\\Domain-01.com\DFS$\care-one\groups\CORPORATE\Regional Accounting\Monthly Reports\Region Accounting\2014\03 March 2014\NJ\AP"

Set objFolder = objFSO.GetFolder(objStartFolder)

Set colFiles = objFolder.Files

Set objFile = objFSO.CreateTextFile(outFile,True)
For Each objFile in colFiles
objFile.WriteLine objFile.Name
Next

Open in new window

0
 

Author Comment

by:janthonyn
ID: 39976998
sirbounty,

Thanks, but that didn't work. I ran the script and it returned another error for Line 11 Char 1. The error reads: Object doesn't support this property or method:'objFile.WriteLine' Code: 800A01B6 MSVBS runtime error

Any idea what could be substituted for the code in Line 11?
0
 
LVL 67

Expert Comment

by:sirbounty
ID: 39977029
I think it's the duplicate usage of objFile....


Set objFile = objFSO.CreateTextFile(outFile,True)
For Each oFile in colFiles '<<<change this objFile to oFile
0
 

Author Comment

by:janthonyn
ID: 39977066
I made the change and got the same error. My code became the following:

Set objFSO = CreateObject("Scripting.FileSystemObject")
outfile="filelist.txt"
objStartFolder = "\\Domain-01.com\DFS$\care-one\groups\CORPORATE\Regional Accounting\Monthly Reports\Region Accounting\2014\03 March 2014\NJ\AP"

Set objFolder = objFSO.GetFolder(objStartFolder)

Set colFiles = objFolder.Files

Set objFile = objFSO.CreateTextFile(outFile,True)
For Each oFile in colFiles
objFile.WriteLine objFile.Name
Next
VBS-Error.png
0
 
LVL 67

Expert Comment

by:sirbounty
ID: 39977737
Same situation, and my lack of pointing it out.
Your code is still referencing the wrong element, objFile.Name should be oFile.Name:

Set objFile = objFSO.CreateTextFile(outFile,True)
For Each oFile in colFiles
  objFile.WriteLine oFile.Name
Next

Open in new window

0
Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

 

Author Comment

by:janthonyn
ID: 39991336
This is not working. I'm still getting an error. <<Object required: 'objFile' Code: 800A01AB, runtime error.

I'm testing it on my local drive now, outside of the workplace network. I've attached the code.
FileList.vbs
0
 

Author Comment

by:janthonyn
ID: 39994623
Maybe this is better done with a batch file?
0
 
LVL 67

Accepted Solution

by:
sirbounty earned 500 total points
ID: 39994900
You took objfile back out though?  That's why the error...

Set objFSO = CreateObject("Scripting.FileSystemObject")
outfile="filelist.txt"
objStartFolder = "C:\Users\Nels Anthony\Documents\Files & Folders\Desktop Folder\VBScript"

Set objFolder = objFSO.GetFolder(objStartFolder)
Set colFiles = objFolder.Files
Set objFile = objFSO.CreateTextFile(outFile,True)  '<<< objFile is the output file

For Each oFile in colFiles  '<<< oFile is the object reference for each iteration of a file in colFiles
objFile.WriteLine oFile.Name '<<<Need both here - you're writing output to objFile, but the value of what you're writing is a property (.Name) of oFile
Next
0
 

Author Closing Comment

by:janthonyn
ID: 40006304
sirbounty

You have restored my faith in experts-exchange. Thank you very much!
0
 
LVL 67

Expert Comment

by:sirbounty
ID: 40006462
I know it can be frustrating, but it's a back-and-forth exchange.  Were we seated together at a PC, this could have been sorted in about 5 minutes.  But since I can't see exactly what's happening on your end, it takes a bit longer.
So glad it's sorted out now though.
Thanks for the grade! :^)
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Not long ago I saw a question in the VB Script forum that I thought would not take much time. You can read that question (Question ID  (http://www.experts-exchange.com/Programming/Languages/Visual_Basic/VB_Script/Q_28455246.html)28455246) Here (http…
This article describes some techniques which will make your VBA or Visual Basic Classic code easier to understand and maintain, whether by you, your replacement, or another Experts-Exchange expert.
The viewer will learn how to pass data into a function in C++. This is one step further in using functions. Instead of only printing text onto the console, the function will be able to perform calculations with argumentents given by the user.
The viewer will learn how to user default arguments when defining functions. This method of defining functions will be contrasted with the non-default-argument of defining functions.

895 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

14 Experts available now in Live!

Get 1:1 Help Now