ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   send parameters to a batch file with the shell command (https://www.excelbanter.com/excel-programming/362615-send-parameters-batch-file-shell-command.html)

Marcos[_2_]

send parameters to a batch file with the shell command
 
Hi,
I've tried succesfully to call a batch macro from excel with the shell
command.
But when I add parameters to the shell pathname it does not work.

assume the batch file x.bat content is:
echo year is %1
pause

The following works well:
Dim RetVal
mycmd = "C:\temp\x.bat"
RetVal = Shell(mycmd, 1)

but:
Dim RetVal
mycmd = "C:\temp\x.bat 2006"
RetVal = Shell(mycmd, 1)

does not work.

Any help will be appreciated
Marcos


Ardus Petus

send parameters to a batch file with the shell command
 
Dim RetVal
mycmd = "C:\temp\x.bat 2006"
RetVal = Shell(mycmd, 1)

works by me!

x.bat contains 1 line:
echo %1

--
AP

"Marcos" a écrit dans le message de news:
...
Hi,
I've tried succesfully to call a batch macro from excel with the shell
command.
But when I add parameters to the shell pathname it does not work.

assume the batch file x.bat content is:
echo year is %1
pause

The following works well:
Dim RetVal
mycmd = "C:\temp\x.bat"
RetVal = Shell(mycmd, 1)

but:
Dim RetVal
mycmd = "C:\temp\x.bat 2006"
RetVal = Shell(mycmd, 1)

does not work.

Any help will be appreciated
Marcos




Marcos[_2_]

send parameters to a batch file with the shell command
 
Ardus
Thanks, it did work for me as well...
My real problem was calling a macro in the directory C:\Documents and
Settings\Marcos\Desktop\temp.
For the email i wrote c:\temp to simplify, but and as I tried with
c:\temp it did work as you said.

This helped me workout the solution. I was running
mycmd= "C:\Documents and Settings\Marcos\Desktop\temp\x.bat 2006"
RetVal = Shell(mycmd, 1)
it seems a double quetes were needed for the path above.
Adding:
mycmd= chr$(34)+"C:\Documents and
Settings\Marcos\Desktop\temp\x.bat"+chr$(34)+" 2006"
did the trick.
thanks for the help,
Marcos


Ardus Petus

send parameters to a batch file with the shell command
 
You could have written:
mycmd= ""C:\Documents and Settings\Marcos\Desktop\temp\x.bat"" 2006"

HTH
--
AP

"Marcos" a écrit dans le message de news:
...
Ardus
Thanks, it did work for me as well...
My real problem was calling a macro in the directory C:\Documents and
Settings\Marcos\Desktop\temp.
For the email i wrote c:\temp to simplify, but and as I tried with
c:\temp it did work as you said.

This helped me workout the solution. I was running
mycmd= "C:\Documents and Settings\Marcos\Desktop\temp\x.bat 2006"
RetVal = Shell(mycmd, 1)
it seems a double quetes were needed for the path above.
Adding:
mycmd= chr$(34)+"C:\Documents and
Settings\Marcos\Desktop\temp\x.bat"+chr$(34)+" 2006"
did the trick.
thanks for the help,
Marcos




Tom Ogilvy

send parameters to a batch file with the shell command
 
maybe one more "

mycmd= """C:\Documents and Settings\Marcos\Desktop\temp\x.bat"" 2006"
? mycmd
"C:\Documents and Settings\Marcos\Desktop\temp\x.bat" 2006

--
Regards,
Tom Ogilvy

"Ardus Petus" wrote in message
...
You could have written:
mycmd= ""C:\Documents and Settings\Marcos\Desktop\temp\x.bat"" 2006"

HTH
--
AP

"Marcos" a écrit dans le message de news:
...
Ardus
Thanks, it did work for me as well...
My real problem was calling a macro in the directory C:\Documents and
Settings\Marcos\Desktop\temp.
For the email i wrote c:\temp to simplify, but and as I tried with
c:\temp it did work as you said.

This helped me workout the solution. I was running
mycmd= "C:\Documents and Settings\Marcos\Desktop\temp\x.bat 2006"
RetVal = Shell(mycmd, 1)
it seems a double quetes were needed for the path above.
Adding:
mycmd= chr$(34)+"C:\Documents and
Settings\Marcos\Desktop\temp\x.bat"+chr$(34)+" 2006"
did the trick.
thanks for the help,
Marcos






Ardus Petus

send parameters to a batch file with the shell command
 
Sure!

--
AP

"Tom Ogilvy" a écrit dans le message de news:
...
maybe one more "

mycmd= """C:\Documents and Settings\Marcos\Desktop\temp\x.bat"" 2006"
? mycmd
"C:\Documents and Settings\Marcos\Desktop\temp\x.bat" 2006

--
Regards,
Tom Ogilvy

"Ardus Petus" wrote in message
...
You could have written:
mycmd= ""C:\Documents and Settings\Marcos\Desktop\temp\x.bat"" 2006"

HTH
--
AP

"Marcos" a écrit dans le message de news:
...
Ardus
Thanks, it did work for me as well...
My real problem was calling a macro in the directory C:\Documents and
Settings\Marcos\Desktop\temp.
For the email i wrote c:\temp to simplify, but and as I tried with
c:\temp it did work as you said.

This helped me workout the solution. I was running
mycmd= "C:\Documents and Settings\Marcos\Desktop\temp\x.bat 2006"
RetVal = Shell(mycmd, 1)
it seems a double quetes were needed for the path above.
Adding:
mycmd= chr$(34)+"C:\Documents and
Settings\Marcos\Desktop\temp\x.bat"+chr$(34)+" 2006"
did the trick.
thanks for the help,
Marcos








Marcos[_2_]

send parameters to a batch file with the shell command
 
Thanks to all
it's much easier the way you say



All times are GMT +1. The time now is 10:13 AM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
ExcelBanter.com