问题标签 [wsh]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql-server - SQL Server 代理:如何“睡觉”?
在 SQL Server Agent 2005 中计划任务的脚本步骤中,我需要触发在不同服务器上运行的 web 脚本。我正在这样做:
在 (1) 我想“睡觉”(例如 WScript.sleep(..)),但 WScript 在此环境中不可用。还有另一种方法可以“睡”一会儿吗?
vbscript - WSF 和 ADO 与 DB2,recordset.MoveNext 不支持 vbscript 中的错误
我正在尝试使用 .wsf 文件和 vbscript 循环从 db2 返回的记录集。
vbscript libfile(lib.vbs) 如下
我正在使用 trial.wsf 文件来取回我试图循环的记录集
我最初的想法是光标类型可能是错误的,
但我什至无法将光标类型设置为动态,不支持 vbscript 错误。
可能是提供商的问题,但无法确认。
我想做这样的事情,但无法在记录集上循环..
我确定这里有一些基本/愚蠢的错误,不精通 wsf 和脚本..
c# - 在 Vista 64 位上使用来自 C# 或 VBS 的 32 位 COM 对象并收到错误 80004005
我在这里需要一些读心术,因为我正在尝试做我不完全理解的事情。
有一个 32 位应用程序(称为 CQG 的电子交易应用程序)为外部访问提供 COM API。我有从 Excel、.NET(C++、VB 和 C#)和 shell VBScript 访问此 API 的示例程序和脚本。我将这些 .NET 应用程序作为源代码和编译后的可执行文件(32 位,在 Windows XP 上编译)。
现在我有了 Windows Vista Home 64 位,这让我头晕目眩。Excel 示例工作得很好(在 Excel 2003 中)。编译的 .NET 示例可执行文件也可以工作。
但是,当我尝试运行转换为 Visual Studio C# 表达式并由其编译的 .NET C# 示例或运行 VBScript 脚本时,尝试创建对象时出现错误 80004005。最初 .NET 应用程序也给了我 80040154 但后来我想出了如何让它生成 32 位代码而不是 64 位代码,所以现在 C# 和 VBScript 应用程序中的错误是相同的。这就是我目前取得的所有进展。
是的,我尝试从我的 VBS 上的 SysWOW64 文件夹运行 32 位版本的 cscript.exe/WScript,但结果仍然相同 (80004005)。
如何解决这个问题呢?我几乎已经准备好相信这实际上是不可能的,但是 Excel VBA 可以工作并且在 Windows XP 上编译的 .NET 可执行文件运行得很好,这让我很生气。应该有办法打败这个东西(一些可能只有 Windows Vista 开发人员知道的秘密)!我将不胜感激任何帮助!
PS:我相信代码示例在这里没有多大意义,但这是失败的 VBScript 行:
这是 C#:
更新:当然,忘了说UAC已关闭。我正在使用具有管理员权限的帐户工作。
我还尝试查看使用 Process Monitor 读取了哪些注册表项,但对于该对象的 GUID,一切看起来都正常。我无法识别其他一些 GUID,所以我不确定它们是否重要。
这个 COM 对象是否有可能使用 Internet Explorer 并得到错误的对象(例如 Internet Explorer 7 而不是 Internet Explorer 6 引擎或其他东西)?
windows - Windows XP:用 WSH 脚本替换标准的“新建文件夹”操作
问题:我有一个自定义 WSH 脚本,它以与 Windows 桌面中的标准“新建文件夹”操作类似的方式创建一个新目录。然而,这个脚本做了一些额外的事情;例如允许我创建一组预定义的子目录(可选);如果目录与工作相关或针对特定客户,还允许我添加注释和提醒。
我希望能够做到这一点,以便每次我在 windows xp 中调用“新建文件夹”操作时都会运行此脚本。
问题:有哪些可用选项(如果有)允许我替换 WindowsXP 中新目录的标准创建,以便运行我的自定义 WSH 脚本?
额外问题:不管在 Windows XP 中做这样的事情是否以及多么麻烦,Windows Vista 是否让它变得更容易?
batch-file - 可以搜索文件的 .bat 或 .wsh 脚本
我正在寻找可以执行以下操作的 .bat 或 .wsh 脚本的一些示例:
- 递归读取具有用户提供的扩展名(.dll、.exe 等)的目录中的文件名
- 在用户提供的目录中搜索上述文件名
- 生成结果的 txt 或 xls 报告,例如:x.txt was found in "C:\temp", "C:\blah"
TIA。
编辑:
糟糕,我应该澄清一下:这里有两个目录和两个搜索。
搜索 1:
- 在用户提供的目录“Dir 1”中搜索所有 *.dll。
搜索 2:
- 在不同的用户提供的目录“Dir 2”中搜索在搜索 1 中生成的文件名。此搜索还需要是递归的。
因此,如果搜索 1 在目录 1 中找到 foo.dll、foo2.dll 和 foo3.dll,则搜索 2 应在目录 2 中查找 foo.dll、foo2.dll 和 foo3.dll,并提供报告(简单列表)每个找到的文件。
svn - svn 转储失败并出现 WScript.Shell
我试图在 Windows 上运行 cscript,但它似乎什么也没做。它不会创建转储文件。
我做错了什么吗?
logging - VBScript 有对应的 log4j 吗?
我需要使用调试语句检测一系列 .wsf 和 .vbs 文件;在我自己动手之前,WSF/VBScript 是否存在类似 log4j 的东西?
windows - 如何使用 WshShell.RegRead 读取名称为文件路径的注册表值
我正在编写一些由 Windows 脚本主机执行的 javascript,并且我需要能够从注册表中读取某些特定 DLL 的共享文件计数。注册表项和值如下所示:
我正在尝试使用WshShell.RegRead方法来执行此操作,但它似乎不起作用。我认为问题在于这个方法只接受一个参数,它是要检索的值的连接键路径和值名称。由于本例中的值名称本身就是路径,因此该方法认为它是键的一部分。有没有办法让这个方法识别它的值名称?
这是演示问题的代码:
我看到的错误是:
profiling - 是否有用于 Windows 脚本主机代码的 Profiler?
是否有任何分析器可以分析在 WSH(VBScript、JavaScript、WSF)下运行的代码?除了使用跟踪语句进行手动检测之外,还有什么好方法可以分析在 WSH 下运行的代码?
encoding - VBScript中的Base64编码字符串
我有一个 Web 服务加载驱动程序,它是一个 Windows 脚本文件 (WSF),其中包括一些 VBScript 和 JavaScript 文件。我的 Web 服务要求传入的消息是 base64 编码的。我目前有一个 VBScript 函数可以执行此操作,但效率非常低(内存密集型,主要是由于 VBScripts 糟糕的字符串连接)
[在旁边; 是的,我看过Jeff 的最新博文。连接发生在一个循环中,跨越大小为 1,000 到 10,000 字节的消息。]
我尝试过使用一些自定义字符串连接例程;一个使用数组,一个使用 ADODB.Stream。这些有一点帮助,但我认为如果我有其他方式来编码消息而不是通过我自己的 VBS 函数,它会更有帮助。
是否有其他方式对我的消息进行编码,最好使用本机 Windows 方法?