标签: vbscript

在.vbs的文件路径中使用变量

是否可以在.vbs中的路径中使用美国变量。我的基本情况是我有一个vbs脚本,该脚本通常将在一个人登录的计算机上运行,​​并由管理员使用完全不同的用户名运行(假定将右键单击该文件并以“运行方式”运行)。

该脚本为登录的人编辑位于用户目录中的ini文件。我知道我可以批量插入变量,"C:\Users\%Logger%\AppData\Local\stat.ini"然后替换该变量。但是我无法在.vbs中执行此操作。到目前为止,我的脚本。或在此处的答案中查看其中的大部分内容。

Dim blnRes: blnRes = 0
Dim strOld, strNew, logger
strOld = "frogg"
strNew = "frog"
logger = Inputbox("What is your Domain ID exactly as entered when you log into this machine?","Domain ID")

On Error Resume Next
Call update("C:\Users\logger\AppData\Local\stat.ini", strOld, strNew)
blnRes = blnRes Or (Err.Number = 0): Err.Clear
Run Code Online (Sandbox Code Playgroud)

有什么方法可以将我标记logger为变量,或者有更简单的方法可以做到这一点?

variables vbscript

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

在ASP,C#和VB.Net中如何检索当前行号

ASP,C#,VB.NET是否有办法检索代码中的哪一行作为处理命令?

1 <%
2 response.write("Your on line " & retreiveCurrentLineNumber)
3 %>
Run Code Online (Sandbox Code Playgroud)

输出:你在线2

c# vb.net asp.net vbscript asp-classic

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

如何使用VBscript删除HTML标签?

如何使用VBscript从字符串中删除HTML标记?是否有任何功能?

vbscript

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

如何将参数从批处理(.bat)传递到VBScript(.vbs)?

如何将参数从批处理传递给vbscript?我的批处理脚本在自动执行结束时发送一封电子邮件.为此,它使用/调用我的vbscript(email.vbs),它发送带有实际日志文件(具有执行结果)的电子邮件.所有这些日志文件都存储在特定文件夹中,例如:201207(2012年7月),201208(2012年8月)等等....我想传递文件夹名称或部分文件夹(我正在考虑硬编码2012部分并通过我的批处理从该参数获取月份数)它作为我的email.vbs的参数,以便它可以寻找正确的文件夹来获取正确的日志文件.说得通?

ECHO Checking the log file for errors...
FINDSTR /C:"RC (return code) = 0" %workDir%\%filenm%_Log.txt && (ECHO Deployment was successful. 
ECHO Email is sent out...
cscript //nologo success_mail_DEV.vbs %workDir%  'passing the directory param. here.
ECHO Press ENTER to exit...
GOTO offshore) || (ECHO Deployment was not successful. Errors were found!
ECHO Email is sent out...
ECHO Press ENTER to exit...
cscript //nologo fail_mail_DEV.vbs %workDir%  'and here
GOTO offshore)
Run Code Online (Sandbox Code Playgroud)

这是我现在拥有的一部分.它正在检查日志文件中的错误并相应地调用该成功/失败邮件.现在,您在那里看到的2个vbs邮件脚本中硬编码了位置名称/编号.我确信有一种方法可以将某个参数传递给电子邮件vbscript.但是,我不知道该怎么做.

这是我的邮件vbscript:

Const ForReading = 1

Set args = WScript.Arguments
directory = …
Run Code Online (Sandbox Code Playgroud)

parameters vbscript batch-file

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

尝试使用WMI将文件从一台XP PC复制到另一台PC,因为RPC和UNC不可用

我是VBScript的新手.我找不到使用VBS中的WMI将文件从一个XP主机复制到另一个主机的方法.复制文件的常用方法(RPC - 远程过程调用,SMB,UNC)不可用于多个主机,但WMI可供所有主机使用,我需要将文件从管理主机复制到目标Windows主机.我以为我会找到一些示例代码,但我没有找到相关信息.没有找到任何告诉我也无法做到的事情.

源文件是我的管理员计算机的'F:\ TEMP'文件夹中的可执行文件和'test1.txt'.我想把文件放在远程主机HOST1的'C:\ TEMP'文件夹中.我拥有两台主机的完全管理员权限.这是我到目前为止,只为一个文件(以保持测试简单):

strComputer = "HOST1"
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colFiles = objWMIService.ExecQuery( _
    "Select * from Win32_Directory where Name = 'c:\\temp'")
For Each objFiles in colFiles
    errResults  = objFolder.Copy("f:\temp\test1.txt")
    Wscript.Echo errResults
Next
Run Code Online (Sandbox Code Playgroud)

vbscript wmi copy file

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

是否可以从浏览器运行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万
查看次数