2013-10-08 4 views
0

У меня есть классическая страница ASP, которая должна получить доступ к файлу, сгенерированному через PHP-скрипт. Можно ли как-то вызвать PHP-скрипт из VBScript?Выполнение php-скрипта из vbscript

И до того, как кто-либо спросит, у меня нет времени на перенос сценария. Они оба очень сложны, и в это время мне нужно только краткосрочное решение.

Теперь ниже не генерируются ошибки, но файл не создается. Я готов сдаться.

str = "D:\TTnav_Alpha\Alpha\Framework\EnvMgr\generate_jira_list.php" 
Set objShell = CreateObject("WScript.Shell") 
'response.write(str) 
objShell.Run """C:\Program Files (x86)\PHP\php.exe"" " & str ,3,true 
Set objShell = Nothing 
+0

Не ясно: Вы просто хотите получить доступ к файлу из vbscript, или вам нужно сначала обработать файл с помощью программы PHP? Вам нужно дать PHP-программе какие-либо входные аргументы? Выведет ли он ответ, который нужно захватить? Нужно ли запускать его в среде веб-сервера или запускать из командной строки? У ваших сред ASP и PHP есть разрешение на чтение и запись файла? Являются ли они сторонними программами или внутренним кодом? Вероятно, есть немало других проблем, но это только мои первоначальные мысли. – Spudley

+0

Скрипт asp должен получить доступ к файлу, сгенерированному скриптом php. Я хочу выполнить php-скрипт из сценария asp, чтобы убедиться, что файл обновлен. достаточно ясно?? – prufrock

+0

Да, это полезная дополнительная информация. Повторите свою текущую попытку, вы можете захотеть удвоить обратную косую черту на пути, чтобы избежать их. – Spudley

ответ

0

Просто вызовите WScript.Shell, как описано в How do I execute a DOS command/batch file/exe from ASP?

<% 
' Untested 
set wshell = CreateObject("WScript.Shell") 
wshell.run "c:\dos\php c:\site\script.php" 
set wshell = nothing 
%> 

Edit: Теперь вы пытаетесь выполнить это:

C:\Program Files (x86)\PHP\php.exeD:\TTnav_Alpha\Alpha\Framework\EnvMgr\generate_jira_list.php 

Это неправильная команда (если скопировать его в командной строке он не будет запущен). Вам нужно процитировать пути с пробелами и отделить команду от аргумента:

"C:\Program Files (x86)\PHP\php.exe" D:\TTnav_Alpha\Alpha\Framework\EnvMgr\generate_jira_list.php 

В VBScript you escape quotes doubling them так что вы хотите:

objShell.Run """C:\Program Files (x86)\PHP\php.exe"" " & str,3,false 

Кстати, что 3 означает Активизирует окно и отображает это как развернутое окно. Не забудьте удалить его, прежде чем идти в прямом эфире.

Ref: Run Method (Windows Script Host)

+0

Я пробовал что-то подобное, но не работает. Я добавил его к моему вопросу. – prufrock

+0

Я видел ваше редактирование, где вы копируете мой код и просто сбрасываете «не работает» без дальнейших подробностей. Ваша версия даже не выглядит корректной VBScript. Вам нужна помощь [экранирование цитат] (http://stackoverflow.com/questions/2942554/vbscript-adding-quotes-to-a-string)? –

+0

Может быть. Я не получаю никакой обратной связи после запуска. Я попытался убежать от котировок. но все же, я не получаю сообщение об ошибке. И я знаю, что скрипт php работает. Я запускаю его из командной строки вручную. – prufrock

0

Мой .vbs код успешно вызывает скрипт в .php файле.

В моих .vbs файл у меня есть это:

set wshell = CreateObject("WScript.Shell") 
wshell.Run "C:\xampp\php\php.exe -f C:\Temp\test2.php" 
set wshell = nothing 

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

set wshell = CreateObject("WScript.Shell") 
wshell.Run """C:\my xampp dir\php\php.exe"" " & "-f C:\Temp\test2.php" 
set wshell = nothing 
Смежные вопросы