【发布时间】: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
标签: windows powershell automation vbscript