Как написать сценарий оболочки VBA для запуска сценария PHP для файлов переменных

Я пытаюсь написать сценарий оболочки, который будет запускать сценарий PHP для нескольких файлов одновременно (это требует использования exe-файла и php-файла в json-файле). Файл json является единственным, который является переменным в этой ситуации.

Если бы я использовал командную строку вручную, вот команда, которую мне нужно было бы ввести для достижения желаемого результата:

C:/Users/myusername/Desktop/XAMPP/php/php.exe transcript.php transcribedfile.json

Ячейка G2 моего листа содержит имя файла json, поэтому я активировал его во второй строке. Как только я смогу заставить скрипт оболочки работать, я буду кодировать цикл, который будет перебирать все значения в столбце G, начиная с G2, пока значение ActiveCell не будет равно «».

Вот что я попробовал

Sub Shell()
Range("G2").Activate
Dim strProgramName As String
Dim strArgument As String

strProgramName = "C:\Users\myusername\Desktop\XAMPP\php\php.exe transcript.php " & ActiveCell.Value
strArgument = "/G"
Call Shell("""" & strProgramName & """ """ & strArgument & """", vbNormalFocus)

End Sub

Когда я запускаю подпрограмму, я получаю ошибку «Файл не найден». Я протестировал strProgramName и обнаружил, что могу запустить php.exe, если в тот момент я обрежу код, но мне нужно, чтобы он распознал всю строку.

Любые идеи будут приветствоваться. Заранее спасибо.

0

Решение

Вот как я это сделаю:

Const PHP_PATH As String = "C:\Users\myusername\Desktop\XAMPP\php\"Dim strProg As Variant

strProg = """{pth}php.exe"" ""{pth}transcript.php"" ""{pth}" & _
Range("G2").Value & """ \G"
strProg = Replace(strProg, "{pth}", PHP_PATH)
Debug.Print strProg '<< pass this to Shell
0

Другие решения

Других решений пока нет …