vbscript - 尝试 "Include".VBS 文件中的 .ASP 文件

标签 vbscript asp-classic

我有一个 .VBS 文件,它通过我的服务器上的计划任务运行。我在我网站上的 .ASP 文件中有一些数据,我想将其提取到该 .VBS 文件中,这样我就不需要在两个地方复制相同的信息。

这是 ASP 文件中的数据示例:

<%
If MyVar = "1" Then
    Data1 = "this"
    Data2 = "that"
Else 
    Data1 = "hi"
    Data2 = "there"
End If
%>

这可能吗?我想我想起了一些关于 ExecuteGlobal 的事情,但无法将它们全部放在一起 - 如果这实际上对这里有帮助的话。

最佳答案

ExecuteGlobal ValidVBSCode 是将 VBScript 代码 重新使用/导入/包含到 W/CScript 托管脚本中的简单方法。 ASP 代码的问题是“<% ... %>”,因此您必须预处理由 .Readall() 加载的代码

正如您提到的“.ASP 文件中的数据”,另一种方法可能是将文件作为文本.ReadAll()解析 将信息转换为合适的(可能是复杂的)变量。

如果您需要更多帮助,请发布一个小但具有代表性的文件示例以“包含”。

演示脚本(针对给定示例):

Option Explicit

Dim sASP : sASP = Join(Array( _
     " <% If MyVar = ""1"" Then" _
   , "       Data1 = ""this""" _
   , "       Data2 = ""that""" _
   , "   Else" _
   , "       Data1 = ""hi""" _
   , "       Data2 = ""there""" _
   , "   End If %>" _
), vbCrLf)
WScript.Echo sASP

Dim sExpr : sExpr = Replace(Replace(sASP, "<%", ""), "%>", "")
WScript.Echo sExpr
Dim MyVar, Data1, Data2
For Each MyVar In Split("1 2")
    ExecuteGlobal sExpr
    WScript.Echo myVar, Data1, Data2
Next

输出:

cscript 22821687.vbs
 <% If MyVar = "1" Then
       Data1 = "this"
       Data2 = "that"
   Else
       Data1 = "hi"
       Data2 = "there"
   End If %>
  If MyVar = "1" Then
       Data1 = "this"
       Data2 = "that"
   Else
       Data1 = "hi"
       Data2 = "there"
   End If
1 this that
2 hi there

更新评论和@Dennis 的演示代码:

我错误地假设(基于 w/cscript 拒绝它们)“<%..%>”会导致问题。正如 Dennis 的代码所展示的(以及我的“阅读后”测试所证实的),Execute(Global) 可以很好地处理它们;不需要替换。 (所以我认为丹尼斯的回答值得赞扬。)

关于vbscript - 尝试 "Include".VBS 文件中的 .ASP 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22821687/

相关文章:

vbscript - 如何编写一个函数来组合文件夹路径和文件名?

command-line - 如何强制 vbs 脚本在 cscript 主机中运行

asp-classic - 使用 ADO Stream 逐行读取大文件?

mysql - 在新服务器上导致 'Type mismatch' 错误的经典 ASP 脚本

vbscript - ASP中如何在多行表达式的每一行末尾添加注释?

javascript - 如何使用VBS或BAT脚本发送url请求

asp-classic - 在经典ASP中未找到500.100的错误页面

javascript - 关于MathJax的具体问题,然后(自动?)保存到word或pdf

javascript - 使用 JavaScript 的经典 ASP 会出现 500 错误

arrays - 如何检查vbscript中数组中的变量