标签: vbscript

DotNet版本的Windows Scripting Host

早上好,

我在一个小商店(我们只有两个人)工作,我们目前管理更多我们想要的.vbs脚本(我们想管理零).这些脚本的一个好处是它可以快速进行更改(根据需要)并返回到我们的日常工作中.

这一切都很好,直到我们认为工作需要大幅改变,然后PITA进行开发和调试,主要是因为感觉我正在用棒球棒射击池.

是否有更多DotNet-y方式来执行Windows Scripting人们使用过的类似主机的东西?我当然更喜欢免费/廉价的工具.

问候,

-Alan.

.net vbscript wsh

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

Robocopy - 比较文件的修改日期?

我一直在尝试创建这个基本上镜像两组文件夹及其内容(包括子文件夹)的脚本,但只复制比已经存在的文件更新的文件.我尝试通过编写vbscript来做到这一点,但事实证明我手册需要扫描每个子文件夹然后它的内容.然后该子文件夹的内容也等等.

所以我想知道是否有人知道这是否可以用Robocopy完成?

vbscript robocopy last-modified

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

为什么recordset.RecordCount等于1但recordset.EOF和recordset.BOF都等于True

我有一个非常简单的查询,只返回一条记录.当我尝试从唯一记录中的唯一列中取出值时,我得到"要么BOF或EOF为True,要么当前记录已被删除.请求的操作需要当前记录." 这里发生了什么?如果RecordCount为0并且我已经验证记录集确实包含记录,则导致错误的代码甚至不会执行.

代码如下.尝试设置strDN时抛出错误.这很简单,但我无法弄清楚我哪里出错了.

编辑包括命令

<LDAP://DC=something,DC=com>;(&(objectCategory=person)(objectClass=user)(!userAccountControl:1.2.840.113556.1.4.803:=2)(employeeID=01234567));distinguishedName;subtree

Set adoRecordset = adoCommand.Execute


    If adoRecordset.RecordCount > 0 Then


        strDN = adoRecordset.Fields("distinguishedName").Value

        Set objUser = GetObject("LDAP://" & strDN)

        objGroup.add(objUser.ADsPath)

    End if
Run Code Online (Sandbox Code Playgroud)

vbscript

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

在VBScript中测试Active Directory域的用户名/密码?

我需要针对VBScript中的给定域测试用户名和密码对.该脚本将知道它需要检查访问权限的用户名,密码和域,并且我需要返回的是关于帐户是否有效的真或假.

任何人都可以建议一个很好的方法来完成这个 谢谢!

vbscript active-directory

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

如何在InstallShield的VBScript自定义操作中找到设置位置?

在InstallShield项目中,我有一个VBScript自定义操作,有条件地需要执行与安装一起打包的某个文件.

通常我使用代码来获取vbs的当前目录

sCurPath = CreateObject("Scripting.FileSystemObject").GetAbsolutePathName(".")
Run Code Online (Sandbox Code Playgroud)

其中,如果它返回启动安装的Setup.exe的位置,应该工作.

但是,在运行安装时,当前路径(在XP上)是C:\ Windows\system32而不是我期望的Setup.exe文件的位置.

假设我的InstallShield构建的输出如下所示

Disk1
->Setup.exe
->ISSetupPrerequisites
-->Req1
-->Req2
-->...
->OtherReqs
-->ConditionallyRunMe.exe
Run Code Online (Sandbox Code Playgroud)

我怎么能从VBScript自定义操作运行"\ OtherReqs\ConditionalRunMe.exe"?

谢谢!!

(注意:我意识到有一些方法可以使用InstallShield有条件地运行exe文件,但在这种情况下,InstallShield不支持这些要求 - 除非有办法使用VBScript自定义操作返回值作为运行另一个文件的条件? )

vbscript installshield custom-action

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

vbscript asp - 查找给定月份的每个星期四

我试图使用VBScript查找给定月份内的所有星期四.

有人可以帮忙吗?

vbscript date

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

在VBS中获取Common Documents文件夹

令我非常懊恼的是,我必须使用VBS编写InstallShield 2010 LE自定义操作.我没有VBS经验所以我基本上把我找到的代码片段放在一起.

我需要保留Common Documents文件夹(CSIDL_COMMON_DOCUMENTS).它没有定义WScript.Shell.SpecialFolders(尽管所有用户桌面都是).我发现了一些尝试链接到系统DLL的示例代码:

Private Declare Function SHGetFolderPath Lib "shfolder.dll" _
Alias "SHGetFolderPathA" _
    (ByVal hwndOwner As Long, _
    ByVal nFolder As Long, _
    ByVal hToken As Long, _
    ByVal dwReserved As Long, _
    ByVal lpszPath As String) As Long
Run Code Online (Sandbox Code Playgroud)

但是当我尝试在VbsEdit中运行它时,我在第一行得到以下错误:

Microsoft VBScript compilation error: Expected end of statement

有任何想法吗?

windows vbscript installer installshield special-folders

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

将代码包装在IF FALSE THEN ... END IF中是否对VBScript有意义?

我致力于将经典ASP转换为ASP.NET.而且,我一直看到代码包含在构造中.

If False Then
 ' code here ...
End If
Run Code Online (Sandbox Code Playgroud)

使用在线转换器,我得到了这个

if(false)
{
}
Run Code Online (Sandbox Code Playgroud)

这段代码有意义吗?在视觉工作室,我得到一个警告:Unreachable code..

将代码包装在带有false值的if语句中是否在VBScript中有意义?

c# vbscript asp-classic

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

将硬编码路径替换为vbscript的动态路径

我有一个vbscript打开工作簿并在工作簿的module1中运行一个过程,然后关闭工作簿.效果很好.但这就是事情.工作簿的路径是硬编码的,如下所示:

Set xlBook = xlApp.Workbooks.Open("E:\FolderName\WorkbookName.xlsm", 0, True)
Run Code Online (Sandbox Code Playgroud)

我不介意要求用户将脚本和工作簿放在同一个文件夹中,并要求他们不要更改工作簿文件的名称,但我想用硬编码的路径替换动态的东西,比如:

Set xlBook = xlApp.Workbooks.Open(VBSPath & "\WorkbookName.xlsm", 0, True)
Run Code Online (Sandbox Code Playgroud)

所以路径是脚本的路径.

那可能吗?还有其他想法吗?

vbscript excel vba excel-vba

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

GNUPLOT与VBA - STDERR去了哪里?

我在VBA的范围内运行Gnuplot,效果出奇的好.我可以使用GNUPLOT和Word VBA生成一本大约一百个图表的书.(使用Excel图表,我可能得到大约四个)

有一个小问题 - 在VBA下运行时,STDERR会消失,或者没有被创建.没有诊断.

鉴于以下小型GNUPLOT脚本,

set key bmargin left horizontal Right noreverse enhanced autotitle box lt black linewidth 1.000 dashtype solid
set samples 800, 800
set title "Simple Plots" 
set title  font ",20" norotate
DEBUG_TERM_HTIC = 119
DEBUG_TERM_VTIC = 119
plot [-30:20] sin(x*20)*atan(x)
Run Code Online (Sandbox Code Playgroud)

我的VBA代码将其写入临时文件并尝试运行它.VBA生成

"C:\temp\Gnuplot\bin\gnuplot.exe" C:\Users\VVKOZLOV\AppData\Local\Temp\gnuA5E0.txt 2>"C:\Users\VVKOZLOV\AppData\Local\Temp\gnuA5E2.err"
Run Code Online (Sandbox Code Playgroud)

然后使用Windows Shell运行它,如下所示调用:

Dim wsh As Object
Set wsh = VBA.CreateObject("WScript.Shell")
Run Code Online (Sandbox Code Playgroud)

然后

wsh.Run x, 0, True ' x contains the generated GNUPLOT expression
Run Code Online (Sandbox Code Playgroud)

GNUPLOT执行完美.

在GNUPLOT表达式中,第一项是GNUPLOT程序的位置,在我的系统上恰好是"C:\temp\Gnuplot\bin\gnuplot.exe".第二个文件是在Microsoft官方位置生成的临时文件C:\Users\VVKOZLOV\AppData\Local\Temp\gnuA5E0.txt.最后是STDERR的位置,2>"C:\Users\VVKOZLOV\AppData\Local\Temp\gnuA5E2.err"其中2>表示这是STDERR,而不是正常输出STDOUT.

现在假设我在GNUPLOT源中引入了一个故意的错误,我希望写一个包含类似内容的错误文件

scooby …
Run Code Online (Sandbox Code Playgroud)

vbscript vba gnuplot excel-vba word-vba

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