标签: vbscript

COM组件中的Server.MapPath

我正在将旧的VBSCript WSC组件重写为更好的C#COM组件.

出于可怕的原因,一个地方的旧组件通过使用传递服务器上下文,IServer

Set objCurr = CreateObject("MTxAS.AppServer.1")
Set objCurrObjCont = objCurr.GetObjectContext()
Set component.servercontext = objCurrObjCont("Server")
Run Code Online (Sandbox Code Playgroud)

这用于做标准 Server.MapPath("/somelocation")

但是,我对.Net COM组件中的操作感到困惑,System.Web.HttpContext.Current.MapPath()因为没有Web上下文而无法正常工作.

我尝试将经典ASP中的上下文传递给COM组件,但我不确定包含哪个引用,所以我可以调用正确的成员,Microsoft.Active X Data Objects 2.7似乎很常见,但这只包括Recordsets等,没什么对于C++ IServer接口,它就像我们一样COM OBJECT.

有谁知道这样做的方法/解决方法?按照这个速度,我想我可能不得不改变组件的行为

c# com vbscript asp-classic

4
推荐指数
1
解决办法
1254
查看次数

是否可以从浏览器运行VBScript文件(.vbs)?

我有10个.vbs文件并将它们合并到一个.vbs文件即Main.vbs.Now如果我双击main.vbs,我的脚本开始运行.但我正在寻找可以从网络浏览器运行.vbs文件?所以没有人需要去Main.vbs保存的目录并双击它.

我的Main.VBS内容:

Dim oShell : Set oShell = WScript.CreateObject ("WScript.Shell")
Dim FSO : Set FSO = CreateObject("Scripting.FileSystemObject")
oShell.CurrentDirectory = FSO.GetFile(Wscript.ScriptFullName).ParentFolder
oShell.run "A.VBS", 1, True
oShell.run "B.VBS", 1, True
oShell.run "C.VBS", 1, True
oShell.run "D.VBS", 1, True
Run Code Online (Sandbox Code Playgroud)

vbscript internet-explorer

4
推荐指数
1
解决办法
3万
查看次数

如何为VBS启动交互式控制台?

与此问题非常相似:

如何为Perl启动交互式控制台?

我只是希望能够一次开始输入VBS语句,并立即对它们进行评估,比如Python的IDLE.

console vbscript interpreter interactive read-eval-print-loop

4
推荐指数
2
解决办法
3571
查看次数

需要在vbscript中将文本文件从UTF8转换为Unicode

我在一个文件夹中有一堆文本文件,我需要将编码更改为Unicode,而不是手动打开文件并将它们保存为Unicode我希望有一个脚本来执行此操作.

这些文件目前采用UTF-8编码,而我极其有限的脚本编写能力无法解决这个问题.我发现下面的代码从ANSI转换为Unicode,当我使用这个代码时,它确实将它转换为Unicode,但它会弄乱字符,因此转换实际上不起作用.有什么想法吗?提前致谢.

Set fso = CreateObject("Scripting.FileSystemObject")
Set oFolder = fso.GetFolder("C:\test")
Set oFiles = oFolder.files

For each file in oFiles
If Right(file.Name, 3) = "txt" Then
Set ANSIFile = fso.OpenTextFile(file.path, 1, False, False)
ANSIContent = ANSIFile.ReadAll
Set UNICODEFile = fso.OpenTextFile(file.path, 2, False, True)
UNICODEFile.Write ANSIContent
End If
Next
Run Code Online (Sandbox Code Playgroud)

unicode vbscript encoding text utf-8

4
推荐指数
1
解决办法
3万
查看次数

VBScript创建一个多维数组并添加到它?

这对我来说很糟糕哈哈,我几乎检查过谷歌搜索的每一页,我仍然不清楚如何去做.

我想在VB Script中创建一个名为data2的多维数组.尝试我见过的例子,但是我收到了"下标超出范围"的错误

Dim data2()

sub grabdata
    SQL_query = "SELECT * FROM MSAccess_table"
    Set rsData = conn.Execute(SQL_query)
    Do Until rsData.EOF = True
        ReDim Preserve data2(UBound(data2) + 1)
        data2(UBound(data2)) = Array(rsData("id"),rsData("column_1"),rsData("column_2"),rsData("column_3"),rsData("column_4"))
    rsData.moveNext 
    Loop
end sub
Run Code Online (Sandbox Code Playgroud)

基本上我正在尝试学习如何在VB脚本中创建一个多维数组并使用循环添加它.在我的案例中可以使用哪些基本示例?

vbscript loops multidimensional-array

4
推荐指数
1
解决办法
5万
查看次数

如何通过脚本(例如vbScript)在Windows 7中启用RDP 8.0(来自组策略)

最近我安装了两个Windows更新KB2574819KB2592687RDP 8.0我的32位Windows 7 Service Pack 1台的PC进行远程桌面登录.要启用RDP 8.0,我必须从组策略中启用它.为此,我必须运行gpedit.msc然后转到路径

计算机配置 - >管理模板 - > Windows组件 - >远程桌面服务 - >远程桌面会话主机 - >远程会话环境 - >启用远程桌面协议8.0.并设置压缩算法RDP数据,以"优化使用更少的网络带宽"

如果我手动更改组策略它完全正常.但我需要使用脚本来完成这一部分,为此,我要度过难关.谷歌搜索了两天后,我得出这样的结论:当我从组策略启用RDP 8.0时,它会影响两件事:1.注册表2."C:\ Windows\System32\GroupPolicy\Machine\Registry.pol".

注册表:通过使用ProcMon软件,我发现注册表中的更改是在以下路径中进行的

"HKCU\Software\Microsoft\Windows\CurrentVersion\Group Policy Objects\{BE9DF25D-98DB-44BA-844D-20120DDC758D}Machine\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services\fServerEnableRDP8"
Run Code Online (Sandbox Code Playgroud)

这意味着如果我将值1设置为fServerEnableRDP8,它将起作用.但问题是,在路径中,"{BE9DF25D-98DB-44BA-844D-20120DDC758D}"即使每次安装更新,每台机器都会更改.这就是为什么在安装更新后我无法直接将值设置为注册表.

Registry.pol:我手动在我的电脑上启用了RDP 8.0.然后在目标PC中我用它替换了它的Registry.pol文件.gpedit.msc显示已启用RDP 8.0但在远程会话期间它不使用RDP 8.0(顶部栏上没有网络标志,它是RDP 8.0指示符).其背后的原因是,当我替换Registry.pol文件并运行命令"gpupdate/force"时,它在注册表中创建了一个新路径.当我再次从gpedit.msc手动启用时,它创建了另一个路径.主要是{BE9DF25D-98DB-44BA-844D-20120DDC758D}路径和窗口中的数值(例如)更改遵循注册表中gpedit.msc创建的路径.

我找到了关于组策略对象但我没有找到关于它的更多或适当的文档.

所以我的问题是

  1. 如何通过脚本编写?你能提供一些脚本或例子吗?请解释一下你的答案.
  2. 你能提供一些关于脚本组策略对象的好教程,比如一步一步的介绍或类似的东西吗?

提前致谢.

registry vbscript remote-desktop group-policy

4
推荐指数
1
解决办法
2万
查看次数

如何替换字符串中的双引号?

我需要用"一个字符串替换什么都没有.

我试过了:

replace(mystring, """, "")
Run Code Online (Sandbox Code Playgroud)

我想要:

String = " "my string " " --> " my string"
Run Code Online (Sandbox Code Playgroud)

vbscript

4
推荐指数
1
解决办法
2万
查看次数

命令提示符中使用vbscript的多个命令

Set oShell = CreateObject("WScript.Shell")
oShell.Run "cmd /c c:"
Run Code Online (Sandbox Code Playgroud)

这条线执行得非常好.现在我需要输入一个文本.

例如: c:\users> "abcd"

如何在已打开的cmd提示符中进行此操作.

vbscript

4
推荐指数
1
解决办法
1万
查看次数

VB脚本日期格式为"YYYYMMDDHHMMSS"

作为标题首字母,我需要填充now()函数以格式"YYYYMMDDHHMMSS"显示

我确实有一个关于尝试将其拆分出来的游戏,但这会丢掉我需要保留的前导零

mydt下面的例子是"27/02/2015 13:02:27"

mydt = now() 

MSGBOX Year(mydt)& Month(mydt)& Day(mydt)& Hour(mydt)& Minute(mydt)& second(mydt)
Run Code Online (Sandbox Code Playgroud)

这将返回"201522713227"

我需要它返回"2015 0 22713 0 227"我可以使用if <10但是必须有一个更光滑的方式

string vbscript date formats

4
推荐指数
2
解决办法
2万
查看次数

如何在此SSRS表达式中"指定数据集聚合"?

我的SSRS报告中需要一个行值,该值是基于报告中已经使用的几个字段计算出来的.我希望它显示在名为'textboxPercentageValue'的文本框中.在半简单英语中,表达式/公式为:

If the value of the "Week" field is "WK1", display the value of the Variance field divided by the value of the Price field; otherwise, just display the value from the Variance field.
Run Code Online (Sandbox Code Playgroud)

在VB脚本gobbledygook中,我添加到textboxPercentageValue的Value属性的表达式/公式是:

=IIF((Fields!Week.Value="WK1"), Fields!Variance.Value / Fields!Price.Value, Fields!Variance.Value)
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试将.rdl文件上传到SQL Server Reporting Services时,我得到:

" 文本框'textboxPercentageValue'的值表达式直接指向字段'Week'而不指定数据集聚合.当报表包含多个数据集时,数据区域外的字段引用必须包含在指定数据集范围的聚合函数中.(rsFieldReferenceAmbiguous)获取联机帮助文本框'textboxPercentageValue'的值表达式直接指向字段'Variance'而不指定数据集聚合.当报表包含多个数据集时,数据区域外的字段引用必须包含在聚合函数中指定数据集范围.(rsFieldReferenceAmbiguous)获取联机帮助文本框'textboxPercentageValue'的值表达式直接指向字段'Price'而不指定数据集聚合.当报表包含多个数据集时,数据区域外的字段引用必须包含在指定数据集范围的聚合函数中.(rs FieldReferenceAmbiguous)获取联机帮助文本框'textboxPercentageValue'的值表达式直接指向字段'Variance'而不指定数据集聚合.当报表包含多个数据集时,数据区域外的字段引用必须包含在指定数据集范围的聚合函数中.(rsFieldReferenceAmbiguous) "

那么我需要做些什么来使这个表达式/公式明确无法与SQL Server Reporting Services或VBScript解析器或"谁"抱怨它?

vbscript rdl bids aggregates reporting-services

4
推荐指数
1
解决办法
2万
查看次数