2013-07-13 1 views
2

Я пытаюсь отправить строковую переменную в командной строке с помощью vba excel. Я использую следующий код: -Как передать переменную строки в командную строку с помощью vba excel?

code_name = "xyz.c" 
version = "def" 
label = "1XDFO" 
'open command prompt 
    Dim oWsc As Object 
    Set oWsc = CreateObject("WScript.Shell") 
    Dim oExec As Object 
'save config spec in a text file 
    Set oExec = oWsc.Exec("perl F:\My_work\hello_world.pl code_name version label") 
    While oExec.Status <> 1 ' Wait for process 
     Sleep 1000 
    Wend 

при вызове PERL скрипта в строке "oWsc.Exec (" Perl F: \ My_work \ hello_world.pl code_name версия этикетка ")" я хочу, чтобы отправить оригинал содержимое строковой переменной code_name, version, label; но его отправка имен переменных как есть, а не содержимого; Кто-нибудь может мне с этим помочь? Спасибо заранее.

ответ

2

Как внешний скрипт (Perl или любой другой) понимает, что то, что вы отправляете, является переменными и читает их содержимое? Вы должны отправить только содержание:

Set oExec = oWsc.Exec("perl F:\My_work\hello_world.pl " & code_name & " " & version & " " & label) 

Разъяснение 1: VBA или .NET или любой другой язык Microsoft, не «прочитать переменные внутри строки», как и другие языки делать, PHP, например.

Уточнение 2: даже язык, способный считывать переменные внутри строк, не может управлять тем, что делается «вне его рамки». Если вы вызываете скрипт PHP из внешней программы, вы не можете называть его так же, как сейчас, потому что PHP не имеет никакого контроля над тем, что делает внешняя программа и, следовательно, от ее переменных.

 Смежные вопросы

  • Нет связанных вопросов^_^