我有一个关于我应该如何修复运行脚本时看到的错误的问题。我很确定这与我使用 %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) 我已将其设置为通过 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) 在 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)
但这不起作用。条件被忽略。两个问题:
Ifconfitions 或If语句,而是动态创建一个数组来进行比较?非常感谢任何治疗。
如何使用 format() 或在 vb 脚本中以任何可能的方式获取上个月的名称和年份?
例如:如果当前月份 = 2 月,我想要输出 = 2014 年 1 月如果当前月份 = 2014 年 1 月,我想要输出 = 2013 年 12 月
请帮忙。
我在连接 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 位。
我想将以二进制存储的密码转换为正常的 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)
怎样才能做到这一点。请帮忙!!
我有一个 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 返回后出错。
有人有任何想法吗?
所以我试图将记事本中的一些代码保存为 .vbs 文件,但由于某种原因,记事本一直将其作为 .txt 保存到我的桌面,所以我无法运行该程序。
我已经尝试了各种保存它的方法,保存时把它放在括号里,给它不同的名字,完全删除和重做代码,但它不会保存 .vbs 可执行文件。
不确定我是否错过了一些简单的东西,它以前有用过,我没有做任何不同的事情。
我需要使用 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方法,但它只返回没有标签的值。
如何解决?
我通过 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)