执行vbscript(?)代码:自动打开目录中的新文件[关闭]

Posted

技术标签:

【中文标题】执行vbscript(?)代码:自动打开目录中的新文件[关闭]【英文标题】:excecuting vbscript(?) code: automatically open new files in a directory [closed] 【发布时间】:2022-01-21 23:41:34 【问题描述】:

我是 vbs-,Powershell-, ... 编码的新手

我需要构建一些东西来检查特定目录中的新文件并自动打开所有新添加的文件。

我发现这篇文章似乎完全符合我的需求:https://devblogs.microsoft.com/scripting/how-can-i-automatically-open-new-files-added-to-a-folder/

我根据自己的情况调整了代码:

Set objShell = CreateObject(“Wscript.Shell”)

strComputer = “.”
Set objWMIService = GetObject(“winmgmts:\\” & strComputer & “\root\cimv2”)
Set colMonitoredEvents = objWMIService.ExecNotificationQuery _
    (“SELECT * FROM __InstanceCreationEvent WITHIN 1 WHERE ” _
        & “Targetinstance ISA ‘CIM_DirectoryContainsFile’ and ” _
            & “TargetInstance.GroupComponent= ” _
                & “‘Win32_Directory.Name=””T:\\\\Reporting\\\\AutoOpen””‘”)
Do
    Set objLatestEvent = colMonitoredEvents.NextEvent
    strNewFile = objLatestEvent.TargetInstance.PartComponent
    arrNewFile = Split(strNewFile, “=”)
    strFileName = arrNewFile(1)
    strFileName = Replace(strFileName, “\\”, “\”)
    strFileName = Replace(strFileName, Chr(34), “”)
    objShell.Run(“excel.exe ” & strFileName)
Loop

上面的帖子没有包含有关如何实际使用代码或它是什么编程语言的详细信息:D

我认为这个片段是针对 vbscript 的。当我将它放入 .vbs 文件并执行它时,我收到错误消息“无效字符,第 1 行,第 29 字符,编译错误,...” -> 此字符是第 1 行中的第一个引号。

所以我也尝试了powershell,但似乎代码也不适合那里。

... 那么这到底是个什么样的代码呢? 我怎样才能把它放在一个可执行文件中?

非常感谢您。

【问题讨论】:

问题是双引号。 MS Word 倾向于将标准双引号转换为这些双引号。您必须使用标准的" 双引号 这通常是正确的:不要只执行一些来自 Internet 的随机代码,特别是如果您不知道它是什么、做什么,或者它是如何工作的。这完全是鲁莽的。你可以在准确理解每一行之后运行其他人的代码,而不是之前。 如此真实... o.O 【参考方案1】:

您使用的倾斜或智能引号 “.” 在 vbscript 代码中无效。

你应该用常规双引号替换所有这些"

诸如 MS Word 之类的应用程序倾向于将常规引号转换为这些倾斜的引号,因此您可能从那里得到它们。

【讨论】:

在这种情况下,大引号可能是在devblogs.microsoft.com 上运行的CMS 的一个功能。从外观上看,它是 Wordpress。它真的很喜欢“有帮助”地在任何地方插入印刷引号。 好的,这很容易解决。我也替换了'by',现在它可以工作了!非常感谢你的帮助。来自德国汉堡的问候;)

以上是关于执行vbscript(?)代码:自动打开目录中的新文件[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

c#打开批处理文件但不执行.bat中的VBScript

如何在执行期间保持 VBScript 命令窗口打开

如何成功执行vbscript?

vbscript将word doc转换为pdf

在HPE UFT / VBscript中替换URL的一部分

VBscript运行shell命令脚本有效,但什么都不做