标签: vbscript

VBScript 环境变量

我有一个关于我应该如何修复运行脚本时看到的错误的问题。我很确定这与我使用 %COMPUTERNAME% 环境变量的方式有关。

我的脚本所做的是在本地压缩一些文件,然后使用 robocopy 将它们复制到已安装或共享的驱动器,然后检查文件大小是否相同,如果相同,则删除原始计算机上的文件。如果过程中的任何步骤产生错误,它就会退出脚本。

现在,如果我不将“%COMPUTERNAME%”添加到最终目标路径,脚本就可以正常工作。(压缩文件最终会在哪里)我需要将压缩文件放入它们自己的文件夹中,并使用它起源的主机的名称,因为此脚本将在许多不同的机器上运行,所有机器都将运行在同一位置。

所以基本上它需要看起来像这样:

E:\LocalHostName\TestZip.zip

现在脚本将在复制压缩文件时很好地构建文件夹,一旦文件大小检查开始就会出现问题。我收到“FileToBeCompared2”行的“找不到文件”错误。我明白为什么会产生错误,因为它没有识别 %COMPUTERNAME% 环境变量,但我不知道如何解决这个问题。

我还将尝试添加一些功能,如果发生错误,则会在输出文件夹中生成带有“脚本期间发生错误”之类的文本文件。

提前感谢您的所有帮助。该脚本在下面找到:

'-------------------------------------------------------------------------------------------
'This script is used to zip files locally, copy them to a new location, verify that the
'files were copied correctly, and then delete the files from the original source.
'In it's current state it is being used as a means to zip event files and move them
'to a central location.

'Run with administrator priveleges.

'-----------------------------------------------------------------------------------------------------
Option Explicit

Dim sDirectoryPath, sLocalDestinationPath, sFinalDestinationPath, sOutputFilename, Shell, …
Run Code Online (Sandbox Code Playgroud)

vbscript environment-variables

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

VBScript SMTP 服务器

我已将其设置为通过 Outlook 客户端自动发送电子邮件,是否可以更改此代码以直接通过 SMTP 服务器工作?谁能帮我做这件事?

任何帮助将不胜感激,谢谢!

Set app = CreateObject("Excel.Application")
Set fso = CreateObject("Scripting.FileSystemObject")

For Each f In fso.GetFolder("Y:\Billing_Common\autoemail").Files
  If LCase(fso.GetExtensionName(f)) = "xls" Then
    Set wb = app.Workbooks.Open(f.Path)


set sh = wb.Sheets("Auto Email Script")
row = 2
name = "Customer"
email = sh.Range("A" & row)
subject = "Billing"
the = "the"
LastRow = sh.UsedRange.Rows.Count

For r = row to LastRow
    If App.WorkSheetFunction.CountA(sh.Rows(r)) <> 0 Then 
        SendMessage email, name, subject, TRUE, _
        NULL, "Y:\Billing_Common\autoemail\Script\energia-logo.gif", 143,393
        row = row + 1
        email …
Run Code Online (Sandbox Code Playgroud)

vbscript outlook smtp

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

如何在 VBS 中创建具有多个条件(不是:嵌套多个语句)的 If 语句?

在 PHP 中,如果我可以即时将一个值与其他值列表进行比较:

$extension = "pdf";
if (!in_array($extension, array("docx", "xlsx", "txt")) {
  // do stuff to the pdf
}
Run Code Online (Sandbox Code Playgroud)

我怎么能把它移植到 VBS?由于我无法弄清楚如何像在 php 中那样动态创建数组,因此我尝试了具有 3 个条件的 if 语句:

extension = objFso.GetExtensionName(objFile.Path)
If Not (extension = "docx") OR (extension = "xlsx") OR (extension = "txt") Then
  // do stuff to the pdf
End If
Run Code Online (Sandbox Code Playgroud)

但这不起作用。条件被忽略。两个问题:

  1. 为什么忽略条件?
  2. 我怎样才能不使用多个Ifconfitions 或If语句,而是动态创建一个数组来进行比较?

非常感谢任何治疗。

vbscript vba

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

如何使用 format() 或在 vb 脚本中以任何方式获取上个月的名称和年份?

如何使用 format() 或在 vb 脚本中以任何可能的方式获取上个月的名称和年份?

例如:如果当前月份 = 2 月,我想要输出 = 2014 年 1 月如果当前月份 = 2014 年 1 月,我想要输出 = 2013 年 12 月

请帮忙。

vbscript

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

用于 ODBC 驱动程序的 ASP 经典 Microsoft OLE DB 提供程序错误“80004005”

我在连接 MS Access 数据库时遇到问题。我正在使用 IIS7。我收到此错误:

用于 ODBC 驱动程序的 Microsoft OLE DB 提供程序错误“80004005”[Microsoft][ODBC 驱动程序管理器] 未找到数据源名称且未指定默认驱动程序

这是我的数据库连接:

<%
 dim rs,con,sql
 SET con=Server.CreateObject("ADODB.Connection")
 SET rs=Server.CreateObject("ADODB.Recordset")

 con.open "DRIVER={Microsoft Access DRIVER (*.mdb)}; DBQ=" & Server.MapPath("crs.mdb") & ""
 sql="SELECT * FROM tblAccount WHERE fldUsername='"& request.form("txtuser") &"' AND fldPassword='"& request.form("txtpass") &"';"
 rs.CursorType=2

 rs.Open sql, con

 if rs.bof then
   response.write "WRONG"
else
   response.write "CORRECT"
 end if

 rs.Close
 SET rs=Nothing
 SET con=Nothing
%>
Run Code Online (Sandbox Code Playgroud)

我的单位是 Windows 和终极 64 位。

vbscript ms-access iis-7 asp-classic

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

将二进制转换为字符串

我想将以二进制存储的密码转换为正常的 ASCII 格式,以便我可以读取它。我需要一个 VBscript,脚本也应该返回这个解密的密码

例如:加密的二进制密码:00110001 00110010 00110011 00110100

解密原始密码:1234

我试过这个

'Binary contains the binary password
dim S
For I = 1 To LenB(Binary)
S = S & Chr(AscB(MidB(Binary, I, 1)))
Next
MSGBOX S
Run Code Online (Sandbox Code Playgroud)

但输出是

0
Run Code Online (Sandbox Code Playgroud)

怎样才能做到这一点。请帮忙!!

vbscript

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

Server.ScriptTimeout = 0 不工作

我有一个 ASP Classic 脚本,它必须做很多事情(仅限管理员),包括运行一个需要 4 分钟才能执行的存储过程。

然而,即使我有

Server.ScriptTimeout = 0
Run Code Online (Sandbox Code Playgroud)

就在页面顶部,它似乎忽略了它 - 2003 和 2012 服务器。

我已经尝试尽可能多地为 proc 建立索引,但它是为了减少经常搜索的术语,所以我必须清除所有黑客、性垃圾邮件等。

我不明白的是为什么 Server.ScriptTimeout = 0 被忽略了。

实际的错误是这样的

Active Server Pages 错误“ASP 0113”

脚本超时

/admin/restricted/fix.asp

已超出脚本执行的最长时间。您可以通过为属性 Server.ScriptTimeout 指定新值或更改 IIS 管理工具中的值来更改此限制。

它从来没有这样做过,它应该覆盖 IIS 中 30 秒的默认设置。

我已确保 proc 的命令超时为 0,因此无限制,并且在从 proc 返回后出错。

有人有任何想法吗?

sql vbscript timeout ado asp-classic

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

将记事本文件另存为 .vbs

所以我试图将记事本中的一些代码保存为 .vbs 文件,但由于某种原因,记事本一直将其作为 .txt 保存到我的桌面,所以我无法运行该程序。

我已经尝试了各种保存它的方法,保存时把它放在括号里,给它不同的名字,完全删除和重做代码,但它不会保存 .vbs 可执行文件。

不确定我是否错过了一些简单的东西,它以前有用过,我没有做任何不同的事情。

vbscript notepad

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

将 XML 对象转换为字符串

我需要使用 Vbscript 将 XML 转换为字符串。首先,我创建MSXML2.DomDocument对象并加载 XML。

Dim XmlDoc
Set XmlDoc = CreateObject("MSXML2.DomDocument")
XmlDoc.Load(path_to_xml_file)
Run Code Online (Sandbox Code Playgroud)

然后我想将其转换XmlDoc为带有所有标签的字符串。但是这段代码有错误:

Dim xmltext As String
xmltext = XmlDoc.xml
Run Code Online (Sandbox Code Playgroud)

我知道.text方法,但它只返回没有标签的值。

如何解决?

xml vbscript

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

查找字符串中的所有字符串

我通过 http 请求响应文本将 StrTxt 作为 html 字符串。我想在 StrTxt 中找到所有出现的 '"string"'。

像这样的东西。

for each string in StrTxt
StrTxt = "all matched strings from StrTxt"
do something StrTxt.
Run Code Online (Sandbox Code Playgroud)

编辑 这被标记为可能重复,但事实并非如此。 如何遍历 word 文档中的每个单词 - VBA 宏解释了如何在文档中查找字符串而不是字符串。

这很简单。如何找到所有带有字符串的字符串?我的标题不是说明了一切吗?

编辑 2

根据 Ansgar Wiechers 的回答,我尝试了以下方法。

Do
i = InStr(strtxt, "startstring")
      If i > 0 Then
        strtxt = Mid(strtxt, i, Len(strtxt) - i)
        i = InStr(InStr(strtxt, "midstring") + 1, strtxt, "endstring")
        If i > 0 Then
         strtxt = Left(strtxt, i + Len(endstring)) ' I …
Run Code Online (Sandbox Code Playgroud)

vbscript vba ms-word

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