作为计划任务运行Visual Basic脚本询问我如何打开文件

我在任务计划程序中创build了一个应该执行我写的.vbs文件的任务。 问题是,每次服务运行,而不是实际执行的代码,我被问到如何打开文件。 我怎样才能阻止呢? 请不要build议batch file; 我不能用这个。

在这里输入图像说明

命令行是"C:\Program Files (x86)\Malwarebytes' Anti-Malware\Malwarebytes Task Scheduler Instructions\Batch Files\MalwarebytesScanAndUpdate.vbs"

vbs文件的代码是…

 Dim shell Set shell = WScript.CreateObject ("WScript.Shell") shell.Run "MalwarebytesUpdate.bat" WScript.Sleep 300000 'Sleeps for 5 minutes. shell.Run "MalwarebytesScan.bat" 

错误 在这里输入图像说明

这听起来像你已经将wscript配置为.vbs文件而不是cscript的默认关联。 您可以使用ftype在命令提示符处进行检查。 在我的Win7 64-bit Pro机器上,它会产生以下内容(这也表明我的配置也是wscript.exe ):

 C:\>ftype VBSFile VBSFile="%SystemRoot%\System32\WScript.exe" "%1" %* 

更改程序/脚本条目,并将cscript.exe添加到开始处,以便完整条目将被读取(当然,全部在一行中):

cscript.exe“C:\ Program Files(x86)\ Malwarebytes'Anti-Malware \ Malwarebytes Task Scheduler Instructions \ Batch Files \ MalwarebytesScanAndUpdate.vbs”

如果任务计划程序抱怨cscript ,请将其更改为

“%SystemRoot%\ System32 \ cscript.exe”“C:\ Program Files(x86)\ Malwarebytes'Anti-Malware \ Malwarebytes Task Scheduler Instructions \ Batch Files \ MalwarebytesScanAndUpdate.vbs”

如果这不起作用,请剪切完整的路径名(再次包括引号),并将其粘贴到标记为“ 添加参数”(可选)的编辑控件中

你也可以在命令行中设置cscript作为默认脚本处理器(尽管除非你确定这是你想要做的,否则我会劝阻它的):

 C:\>cscript /H:Cscript 

请注意,您必须在以管理员身份打开的命令提示符(“开始”,键入“Command”,右键单击“命令提示符”并从上下文菜单中选择“以管理员身份运行”)执行上述操作从那里。 你会得到这样的输出:

 C:\Windows\system32>cscript /H:CScript Microsoft (R) Windows Script Host Version 5.8 Copyright (C) Microsoft Corporation. All rights reserved. The default script host is now set to "cscript.exe". 

如果您决定撤消它,请重复上述操作,改为使用/H:WScript

 C:\Windows\system32>cscript /H:WScript Microsoft (R) Windows Script Host Version 5.8 Copyright (C) Microsoft Corporation. All rights reserved. The default script host is now set to "wscript.exe". 

他们真的在他们的文件夹名称中包含单引号吗? 这是非常讨厌的,国际海事组织。 🙂

我知道这真的很老,但我也有同样的问题,用下面的方法来解决,不管是不是“正确”的方式,他人都可以判断。

我试图安排一个脚本C:\ reminder.vbs在特定的时间运行,并有相同的问题,我可以通过在浏览器中双击运行它没有担心,但是当任务运行它问我想打开它用。 我解决了这个问题,将预定的程序/脚本从C:\ reminder.vbs更改为wscript.exe“C:\ reminder.vbs”

所以它可能并没有真正解释为什么最初的问题发生,但它确实使脚本正确运行。

这也发生在一个相当“干净的”Windows server 2012 R2系统上,除了各种Windows角色和功能外,还安装了Firefox和WinRAR。

计划的任务设置为运行如下所示:

“C:\ Program Files(x86)\ example \ Example \ Sample App \ Directory \ example.vbs”

以上是使用“任务计划程序属性”对话框的“浏览”功能选择.vbs的结果。

使用“[x]仅在用户登录时运行”选项手动运行任务打开“如何打开此文件?”,提示选择Firefox,IE,记事本等之一

请注意,如果没有上述设置,它只会默默地给出“操作被用户取消(0x800704C7)”上次运行结果。 所以我希望找到这个错误的其他人现在可以找到这个线程,并尝试“[x]只有当用户登录时运行”选项,看看他们是否有这个确切的问题。

assoc .vbs给出:.vbs = VBSFile

ftype VBSFile给出:VBSFile =“%SystemRoot%\ System32 \ WScript.exe”“%1”%*

我试图在“开始”选项中设置当前目录,但这也没有帮助。

在我的情况下,解决方案不是简单地添加当前目录,而是编辑浏览按钮设置的程序/脚本字符串。

这个:

“C:\ Program Files(x86)\ example \ Example \ Sample App \ Directory \ example.vbs”

必须成为:

example.vbs

而“可选”开始字段必须设置为:

C:\ Program Files(x86)\ example \ Example \ Sample App \ Directory \

其他变体,如带引号的路径,或带路径的程序/脚本,都没有解决。

您说您提示如何打开(VBScript?)文件,但是您张贴的错误消息的屏幕截图显示您的VBScript无法找到正在尝试运行的批处理脚本。 这是两个不同的问题,而不是相互关联。

有关如何打开特定文件的提示通常是由于文件的扩展名与可执行程序缺少关联,或缺少缺省操作引起的。

这可能表示系统上存在恶意软件,因为默认情况下,扩展名.vbswscript.exe相关联。

您可以使用assocftype来验证关联:

 C:\> assoc .vbs .vbs=VBSFile C:\> ftype vbsfile vbsfile="%SystemRoot%\System32\WScript.exe" "%1" %* 

或者您可以直接检查相应的注册表设置,应如下所示:

 HKEY_CLASSES_ROOT +-.vbs : (Default) REG_SZ "VBSFile" | `-VBSFile `-Shell : (Default) REG_SZ "Open" `-Open `-Command : (Default) REG_EXPAND_SZ "%SystemRoot%\System32\WScript.exe" "%1" %* 

从您的屏幕截图的错误信息

该系统找不到指定的文件。

因为你的VBScript在当前工作目录下找不到批处理文件MalwarebytesUpdate.bat 。 有三种方法可以解决这个问题:

  1. 将计划任务的工作目录(字段“ 开始”(可选) :)设置为包含批处理文件的文件夹。

  2. 让VBScript将工作目录更改为包含批处理文件的文件夹。

     shell.CurrentDirectory = "C:\Program F...ructions\Batch Files" shell.Run "MalwarebytesUpdate.bat" 
  3. 在VBScript中指定批处理文件的完整路径。

     shell.Run """C:\Program F...ructions\Batch Files\MalwarebytesUpdate.bat""" 

    请注意,在这种情况下,您需要在路径上加双引号,因为它包含空格!

我有一个类似的问题。

我在任务计划程序中通过bubbles.vbs运行bubbles.scr(气泡屏幕保护程序),因为Windows 8.1将不会运行它。

因为bubble.vbs位于一个长文件名的目录下,所以我之前使用'JV 16'来禁用长文件名来加速我的电脑。

我也有wscript.exe设置为默认的程序来打开.vbs文件(输入:ftype vbsfile(在命令提示符找到默认的程序关联)

我必须指定cscript.exe作为在任务计划程序中运行的程序/脚本,并指定vbs脚本(j:\ bubbles.vbs)作为参数(不带引号)的路径。

我也不得不启用长文件名支持,或者选择一个8个或更少字符(j:\ Bubbles屏幕保护程序\ bubbles.vbs到j:\ bubbles.vbs)的目录名称。

[我使用气泡屏幕保护程序来保护我的屏幕,因为在短暂暂停期间,您可以通过气泡看到长时间阅读书籍]

我曾经有过同样的事情 我从MS论坛中找到了这个。

VB脚本可以直接从Windows任务计划运行。 在任务计划程序中,选择添加新的计划任务。 按照提示,浏览以选择您的.vbs文件。 为您的任务命名并选择您的日程安排,以便每天运行任务,并选择一天的运行时间。 它的工作原理与您想要计划.Bat文件一样。 在命令中使用绝对文件路径。 或者从.bat文件调用vbs文件。 cscript // nologo c:\ test.vbs