- AuthorPosts
- May 12, 2009 at 3:42 am #7278kennyParticipant
I can’t see how do do this, but is it possible to write a macro to execute an external tool with prompts for the parameters prior to execution?
Specifically, I want to execute the osql command line tool passing the current file path/name [no problem here]. But I also want to prompt for the server and database parameters.
Any thoughts?
May 12, 2009 at 4:43 pm #7282Yutaka EmuraKeymasterkenny wrote:
I can’t see how do do this, but is it possible to write a macro to execute an external tool with prompts for the parameters prior to execution?Specifically, I want to execute the osql command line tool passing the current file path/name [no problem here]. But I also want to prompt for the server and database parameters.
Any thoughts?
For this purpose, you will need to write a macro. External Tools currently cannot include a user interface to input parameters.
May 12, 2009 at 10:52 pm #7286kennyParticipantFor this purpose, you will need to write a macro. External Tools currently cannot include a user interface to input parameters.
Thanks for the reply, but what I’m asking is how to write this macro. I can see hpow to execute an external tool from a macro, but I can’t see how to pass parameters to it in a macro.
May 13, 2009 at 1:44 am #7288Yutaka EmuraKeymasterkenny wrote:
For this purpose, you will need to write a macro. External Tools currently cannot include a user interface to input parameters.
Thanks for the reply, but what I’m asking is how to write this macro. I can see hpow to execute an external tool from a macro, but I can’t see how to pass parameters to it in a macro.
You would write something like this:
WshShell = new ActiveXObject( "WScript.Shell" );
sCmdline = prompt( "Command line: ", "" )
WshShell.Run( "app.exe", sCmdline );
May 13, 2009 at 2:30 am #7289kennyParticipantOK, I can see how I could get this working, but it’s not calling one of the configured external tools [i.e. tools menu -> external tools].
This is still OK, but can I capture the output of WshShell.Run( “app.exe”, sCmdline ); ?
May 13, 2009 at 4:20 am #7290Yutaka EmuraKeymasterkenny wrote:
OK, I can see how I could get this working, but it’s not calling one of the configured external tools [i.e. tools menu -> external tools].This is still OK, but can I capture the output of WshShell.Run( “app.exe”, sCmdline ); ?
How about this?
sCmdline = prompt( "Command line: ", "" )
var wsh = new ActiveXObject("WScript.Shell");
wExec = wsh.Exec("app.exe " + sCmdline);
OutputBar.Visible = true;
OutputBar.SetFocus();
OutputBar.writeln("--------");
OutputBar.write(wExec.StdOut.ReadAll());
OutputBar.write(wExec.StdErr.ReadAll());
May 13, 2009 at 6:15 am #7292kennyParticipantI’m getting somewhere, but not quite there yet.
Using vb rather than jscript [code below]
It doesn’t seem to like the ReadAll lines.
I can’t find any reference to this in the help file. Maybe I should be looking at some vbscript references instead.Any thoughts?
sServer = prompt(“Enter Server”, “MyServer”)
sDatabase = prompt(“Enter Database”, “MyDB”)
sFileName = “MyFile.sql”
sCmdline = “-w””2000″” -S””” + sServer + “”” -E -d””” + sDatabase + “”” -n -t28800 -I -i””” + sFileName + “”””set wsh = CreateObject(“WScript.Shell”)
wExec = wsh.Run(“osql.exe ” + sCmdline)OutputBar.Visible = true
OutputBar.SetFocus()
OutputBar.writeln(“——–“)
OutputBar.write(wExec.StdOut.ReadAll())
OutputBar.write(wExec.StdErr.ReadAll())May 13, 2009 at 6:18 am #7293kennyParticipantOK, I have it now. Many thanks for your help
Missed a set statement.
code should have been
sServer = prompt(“Enter Server”, “MyServer”)
sDatabase = prompt(“Enter Database”, “MyDB”)
sFileName = “MyFile.txt”
sCmdline = “-w””2000″” -S””” + sServer + “”” -E -d””” + sDatabase + “”” -n -t28800 -I -i””” + sFileName + “”””set wsh = CreateObject(“WScript.Shell”)
set wExec = wsh.exec(“osql.exe ” + sCmdline)OutputBar.Visible = true
OutputBar.SetFocus()
OutputBar.writeln(“——–“)
OutputBar.write(wExec.StdOut.ReadAll())
OutputBar.write(wExec.StdErr.ReadAll()) - AuthorPosts
- You must be logged in to reply to this topic.