Improve company productivity with a Business Account.Sign Up

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

Execute a .vbs file from another vbs file - not working

I have a .vbs script that works fine when I run it from command prompt.  However I need to execute it from within another 'Master' vbs file.  I needs the false parameter as it doesn't need to wait...

Attached is the Master.vbs file

Line 253 is where it all starts... I just need the 'splice_years.vbs' script to run....
master.vbs
0
elwayisgod
Asked:
elwayisgod
  • 10
  • 3
  • 2
  • +1
1 Solution
 
elwayisgodAuthor Commented:
Well maybe something is wrong.  I try and fire it up via 'cscript splice_years.vbs' and get:


D:\AppFiles\SDS\SDS_Retail_R3\Scripts>cscript splice_years.vbs
Microsoft (R) Windows Script Host Version 5.6
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.

start - 12/27/2012 12:47:00 PM
file actfisc.txt - 12/27/2012 12:47:00 PM
D:\AppFiles\SDS\SDS_Retail_R3\Scripts\splice_years.vbs(26, 2) Microsoft VBScript
 runtime error: File not found


D:\AppFiles\SDS\SDS_Retail_R3\Scripts>
0
 
elwayisgodAuthor Commented:
Here's the vbs file i want to execute.  No idea why it won't in this directory.  in my test directory it runs fine...
splice-years.vbs
0
 
käµfm³d 👽Commented:
Here's an example of running a script from another:

Main
Set shell = WScript.CreateObject("WScript.Shell")

result = shell.Run("second_script.vbs",,True)

MsgBox(result)

Open in new window


Second Script
MsgBox "Yay!"

WScript.Quit(-1)

Open in new window

0
Upgrade your Question Security!

Your question, your audience. Choose who sees your identity—and your question—with question security.

 
elwayisgodAuthor Commented:
So the 'splice_years.vbs' must be in the data directory for it to run.  Why can't it be in the scripts directory?   Isn't it pointing to the data directory in the script to let it know where the data files that need spliced up reside?
0
 
käµfm³d 👽Commented:
It shouldn't need to be in the same directory. I just had my example set up that way. Just make sure you properly point to the target file, either with an absolute path (as you seem to be doing) or with a correct relative path.
0
 
shorvathCommented:
Const C_FILELIST = "filelist.txt"

8 lines later

Set objFilelist = objFSO.OpenTextFile(C_FILELIST, 1, False)


If  "filelist.txt" does not exist in the folder where you are running Master.VBS you are going to have to specify the full path and file name.
0
 
elwayisgodAuthor Commented:
Back tomorrow to try and resolve.
0
 
RobSampsonCommented:
I would have thought this line should definately work:
intErr = objShell.Run("cscript.exe ""D:\AppFiles\SDS\SDS_Retail_R3\Scripts\splice_years.vbs""", 0, False)

Open in new window


But, if that really doesn't work for some odd reason, try this.

Set objShell = CreateObject("WScript.Shell")
Set objFSO = CreateObject("Scripting.FileSystemObject")
objShell.Run "cscript " & objFSO.GetFile("D:\AppFiles\SDS\SDS_Retail_R3\Scripts\splice_years.vbs").ShortPath, 1, False

Open in new window


Regards,

Rob,
0
 
elwayisgodAuthor Commented:
I will try and give this a try today.  Just slammed right now.
0
 
elwayisgodAuthor Commented:
OK.  So right now attached is my 'splice_years.vbs' script.  This script needs to reside in the 'D:\AppFiles\SDS\SDS_Retail_R3\scripts' directory.  The data files it needs to process against are in the 'D:\AppFiles\SDS\SDS_Retail_R3\Data' directory. How can I edit this to make that work?
splice-years.vbs
0
 
elwayisgodAuthor Commented:
OK.  When I launch the 'splice_years.vbs' form the command prompt in the 'scripts' direcotry, I get the below error.  I had to copy the 'actfisc.txt' file into the 'scripts' directory from the 'data' directory.  It processed the 'actfisc.txt' file ok, but when it tried the next file it errored out.  Why can't it look in the 'data' directory for the data files?


D:\AppFiles\SDS\SDS_Retail_R3\Scripts>cscript splice_years.vbs
Microsoft (R) Windows Script Host Version 5.6
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.

start - 1/7/2013 11:25:52 AM
file actfisc.txt - 1/7/2013 11:25:52 AM
D:\AppFiles\SDS\SDS_Retail_R3\Scripts\splice_years.vbs(26, 2) Microsoft VBScript
 runtime error: File not found


D:\AppFiles\SDS\SDS_Retail_R3\Scripts>cscript splice_years.vbs
Microsoft (R) Windows Script Host Version 5.6
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.

start - 1/7/2013 11:26:31 AM
file actfisc.txt - 1/7/2013 11:26:31 AM
file actppln.txt - 1/7/2013 11:26:55 AM
D:\AppFiles\SDS\SDS_Retail_R3\Scripts\splice_years.vbs(26, 2) Microsoft VBScript
 runtime error: File not found
0
 
elwayisgodAuthor Commented:
I'll post this as another question.  Starting to creep into more issues.
0
 
elwayisgodAuthor Commented:
firs one worked perfectly.  thanks.  now if I can just get it to process data files from the data directory, I'm golden :)
0
 
elwayisgodAuthor Commented:
Now it's now working... I have no clue what is going on.
0
 
RobSampsonCommented:
Hi, I just took a look at your Splice_Years.vbs, and noticed the first line is this:
Const C_DATA_DIR = ".\"

This is going to cause problems, since the .\ relies on the "Working directory" of the script engine at the time, hence sometimes it will work, and sometimes not.  If the script is in the same Data folder all the time, try this:
Const C_DATA_DIR = Replace(WScript.ScriptFullName, WScript.ScriptName, "")

Which will set the data dir to the current directory the script is running from, no matter where you put it.

Regards,

Rob.
0
 
RobSampsonCommented:
Similarly, when launching Splice_Years.vbs from the first script, if they're always in the same folder, instead of this:
intErr = objShell.Run("cscript.exe ""D:\AppFiles\SDS\SDS_Retail_R3\Scripts\splice_years.vbs""", 0, False)

Open in new window


you can use
intErr = objShell.Run("cscript.exe """ & Replace(WScript.ScriptFullName, WScript.ScriptName, "") & "splice_years.vbs""", 0, False)

Open in new window


Rob.
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.

Join & Write a Comment

Featured Post

Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

  • 10
  • 3
  • 2
  • +1
Tackle projects and never again get stuck behind a technical roadblock.
Join Now