php - 如何编写 VBA Shell 脚本以在变量文件上运行 PHP 脚本
问题描述
我正在尝试编写一个 shell 脚本,它将一次在多个文件上运行 PHP 脚本(这需要在 json 文件上使用 exe 文件和 php 文件)。json 文件是在这种情况下唯一可变的文件。
如果我手动使用命令提示符,这是我需要输入的命令才能达到预期的结果 -
C:/Users/myusername/Desktop/XAMPP/php/php.exe transcript.php transcribedfile.json
我的工作表的单元格 G2 包含 json 文件名,这就是我在第二行中激活它的原因。一旦我可以让 shell 脚本工作,我将在一个循环中编写代码,循环遍历 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,但我需要它来识别整个字符串。
任何想法都会受到欢迎。先感谢您。
解决方案
以下是我的做法:
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
推荐阅读
- jquery - Scrollfy 不稳定?如何解决这个问题
- javascript - 插入计数的 Express 和 MongoDB 问题
- javascript - 我想显示进度条中的百分比,并且此进度条显示在模态中。百分比的值来自后端
- django - Django - 使用查询集来确定用于字段的选择
- php - 如何在 CakePHP 中的 file_put_contents 之后强制下载?
- html - UL 和 LI 样式之间的冲突
- ruby-on-rails - 在使用 Puma 和 Nginx 的生产环境中,Rails 应用程序重新加载速度太慢
- python - selenium python查找输出到熊猫的元素
- flutter - Flutter 如何使用浮动标签介绍容器制作文本表单字段
- nlp - Dataframemapper 功能列表