Return Information from Shell Command

A

Andibevan

Hi All,

I have a dos command that lists the location of a config file associated
with a program.

This works fine from a dos prompt but can I use the Shell command in such a
way that the location of the config file can be returned into VBA?

Something like Var = Shell("Getconfig") (I am aware that doing this merely
would set Var = process thread associated with shell)

Thanks

Andi
 
G

Gareth

There might well be a more elegant solution (and indeed this might not
work) but you could try using ">" to output the returned data to a file
rather than the screen. e.g.

Function fcnGetConfigLocation() as string

DIm var as long
Dim myPath as string
DIm F as integer

Var = Shell("Getconfig >c:\temp.txt")

'assuming file just contains one path

F= Freefile
open "c:\temp.txt" for input as #F
input #F, mypath
close #F

kill "c:\temp.txt"

'check path exists
myPath = trim(mypath)
if dir(mypath) <> "" then _
fcnGetConfigLocation = myPath

End Function


HTH,
Gareth
 
A

Andibevan

Hi Gareth - Thanks for the solution but I am having some problems.

Can you try and see if you can get it to work using "Dir >C:\test.txt" as I
am having problems getting shell commands to write to a file.

All I need to know is how to get the bit working that actually creates the
file.

Ta

Andi
 
G

Gareth

Try something like this:

Shell Environ("comspec") _
& " /c dir c:\temp " _
& " > c:\temp.txt", vbHide

It should work.

(I write "should" work - it does work, I tested it! It's not my code, it
was posted by someone called Rick Rothstein, clearly a very nice man, in
a VB NG back in 1999.)

Tara
 
A

Andibevan

Haven't had time to test it yet - but thanks for the input.

I don't suppose you've got a URL with a bit more info have you?

Mainly what the comspec and the /c mean?

Thanks

Andi
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top