Learn how to a build a cloud-first strategyRegister Now

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 2006
  • Last Modified:

passing parameter into vb script

Hi,

The attached code will convert my CSV files into XLS files, my problem is that the input file is hard coded as:strOrigFile = "C:\testing\in.csv"

I would like to be able to pass this as a parameter when I run the script, i.e.
c:\testing\script.vbs -strOrigFile = "C:\testing\in.csv"

How can I achieve this.

Also as a less important point I would like to delete the source file after teh conversion

cheers

Rob
Option Explicit
 
Dim fldr, f, file,strOrigFile, strFile, fso, strDirectory
Dim objExcel
 
 
 
strOrigFile = "C:\testing\in.csv"
'strOrigFile = "& var1"
 
'******************************************************
'CONVERTS THE FILE TO AN EXCEL FILE
'******************************************************
strFile = replace(strOrigFile,".csv",".xls")
 
Set objExcel = CreateObject("Excel.Application")
 
objExcel.Workbooks.Open strOrigFile
 
objExcel.DisplayAlerts = False
objExcel.ActiveWorkbook.SaveAs strFile, -4143
 
objExcel.DisplayAlerts = False
objExcel.ActiveWorkbook.Close
objExcel.DisplayAlerts = False
objExcel.Application.Quit
 
'******************************************************
'FORMAT THE EXCEL FILE AND SAVE IT
'******************************************************
 
objExcel.Workbooks.Open strFile
 
'Set the number format to zero D.P for specified columns
objExcel.columns("A:A").numberformat="0"
objExcel.columns("C:C").numberformat="0"
objExcel.columns("D:D").numberformat="0"
 
 
objExcel.DisplayAlerts = False
objExcel.ActiveWorkbook.SaveAs strFile, -4143
 
objExcel.DisplayAlerts = False
objExcel.ActiveWorkbook.Close
objExcel.DisplayAlerts = False
objExcel.Application.Quit
Set objExcel = Nothing
 
'msgbox "FINISHED!!!"

Open in new window

0
arundelr
Asked:
arundelr
  • 5
  • 3
2 Solutions
 
rseabirdCommented:
0
 
arundelrAuthor Commented:
Hi,

Thanks for reply, I am still a little unsure. could you suggest an example using my script ?

Rob
0
 
Mike TomlinsonMiddle School Assistant TeacherCommented:
You access the parameters passed into your script using WScript.Arguments:
http://msdn.microsoft.com/en-us/library/z2b05k8s(VS.85).aspx

So you could do:

    strOrigFile = WScript.Arguments(0)

0
Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

 
arundelrAuthor Commented:
Woo hoo - Perfect Idle_Mind - Thanks very much ;o)

Do you know how I can delete the input file ? I was trying...

strInputFile =WScript.Arguments(0)
objFSO.DeleteFile(strInputFile)

But not the correct syntax, as you amy have guessed I am new to VBS ;)
0
 
Mike TomlinsonMiddle School Assistant TeacherCommented:
It should work...try:

    Set fso = CreateObject("Scripting.FileSystemObject")
    fso.DeleteFile(strInputFile)
0
 
arundelrAuthor Commented:
Hi,

I tried....

Set fso = CreateObject("Scripting.FileSystemObject")
strInputFile =WScript.Arguments(0)
fso.DeleteFile(strInputFile)

(I attached whole script also)

But I get error message:
Line: 61
Char: 1
Error: Variable is undefined "strInputFile"



Option Explicit
 
 
 
Dim fldr, f, file,strOrigFile, strFile, fso, strDirectory
Dim objExcel
 
'strOrigFile = "C:\testing\in.csv"
 
'******************************************************
'The input file name is passed at run time i.e. wscript C:\testing\csv_to_xls.vbs C:\testing\in.csv
'******************************************************
 
 
strOrigFile = WScript.Arguments(0)
 
'******************************************************
'CONVERTS THE FILE TO AN EXCEL FILE
'******************************************************
strFile = replace(strOrigFile,".csv",".xls")
 
Set objExcel = CreateObject("Excel.Application")
 
objExcel.Workbooks.Open strOrigFile
 
objExcel.DisplayAlerts = False
objExcel.ActiveWorkbook.SaveAs strFile, -4143
 
objExcel.DisplayAlerts = False
objExcel.ActiveWorkbook.Close
objExcel.DisplayAlerts = False
objExcel.Application.Quit
 
'******************************************************
'FORMAT THE EXCEL FILE AND SAVE IT
'******************************************************
 
objExcel.Workbooks.Open strFile
 
'Set the number format to zero D.P for specified columns
objExcel.columns("A:A").numberformat="0"
objExcel.columns("C:C").numberformat="0"
objExcel.columns("D:D").numberformat="0"
 
 
objExcel.DisplayAlerts = False
objExcel.ActiveWorkbook.SaveAs strFile, -4143
 
objExcel.DisplayAlerts = False
objExcel.ActiveWorkbook.Close
objExcel.DisplayAlerts = False
objExcel.Application.Quit
Set objExcel = Nothing
 
'msgbox "FINISHED!!!"
 
'******************************************************
'Delete the input file
'******************************************************
Set fso = CreateObject("Scripting.FileSystemObject")
strInputFile =WScript.Arguments(0)
fso.DeleteFile(strInputFile)

Open in new window

0
 
Mike TomlinsonMiddle School Assistant TeacherCommented:
You need to use YOUR variable names my friend...

Change:

    Set fso = CreateObject("Scripting.FileSystemObject")
    strInputFile =WScript.Arguments(0)
    fso.DeleteFile(strInputFile)

To:

    Set fso = CreateObject("Scripting.FileSystemObject")
    fso.DeleteFile(strOrigFile)

0
 
arundelrAuthor Commented:
"You need to use YOUR variable names my friend..."
*blush* - Ok, that was pretty dumb. lol

Thanks for your invaluable help ;o)

Rob
0
 
arundelrAuthor Commented:
Fantastic !
0

Featured Post

Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

  • 5
  • 3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now