在VBscript命令中使用SET

在VBscript命令中使用SET,vbscript,wsh,Vbscript,Wsh,我正在尝试运行一个VBscript,它运行一个命令行语句,其中包含cmd行命令中的单词set。 VBscript将其识别为保留字并给出错误: 预期“)” 我试图在VBScript中运行的命令是: objShell.Run(appcmd set config /section:isapiFilters /-[name='JakartaXAPI']) 如何转义保留字?Microsoft VBScript编译错误:预期'”只是一个语法错误 Run方法要求其第一个参数为,并且给定的以空格分隔的单词序列

我正在尝试运行一个VBscript,它运行一个命令行语句,其中包含cmd行命令中的单词
set
。 VBscript将其识别为保留字并给出错误:

预期“)”

我试图在VBScript中运行的命令是:

objShell.Run(appcmd set config /section:isapiFilters /-[name='JakartaXAPI'])

如何转义保留字?

Microsoft VBScript编译错误:预期'”只是一个语法错误

Run
方法要求其第一个参数为,并且给定的以空格分隔的单词序列不能算作字符串。您需要用引号(
“”
)将其括起来

在新进程中运行程序

语法

object.Run(strCommand, [intWindowStyle], [bWaitOnReturn]) 
论据

  • object
    WshShell对象
  • strCommand
    字符串值,指示要运行的命令行。必须包括要传递给 可执行文件
  • intWindowStyle
    可选。指示程序窗口外观的整数值。请注意,并非所有程序都使用此功能 信息
  • b等待返回
    可选。布尔值,指示脚本是否应在执行之前等待程序完成 继续执行脚本中的下一条语句。如果设置为true, 脚本执行将停止,直到程序完成,Run返回任何 程序返回的错误代码。如果设置为false(默认值),则 Run方法在启动程序后立即返回, 自动返回0(不被解释为错误代码)
使用


字符串需要加引号。真的吗?他们只是没有将命令作为字符串传递给
Run()
,这导致VBScript运行时出错,而不是rocket science@是的,真的<代码>预期“)”编译不是运行时错误。您的观点是?我没有说这是一个运行时错误,我说的是“VBScript运行时”(指脚本引擎)错误,你只是学究。仍然认为这个答案与实际问题没有多大关系…
Option Explicit
on Error Goto 0
无法阻止这个错误的发生(你自己说的,这是一个编译错误),或者我遗漏了什么?@Lankymart我的观点是……以我所知道的最佳方式回答问题,帮助提问者(我努力遵循文章以及空评论窗口中的提示:……避免在评论中回答问题)。此外,遇到一个公认的
VBScript
初学者,我总是建议使用
Option Explicit
On Error Goto 0
。可能很笨拙。它不需要回答,这是离题(简单的排版错误)它只需要关闭。
objShell.Run "appcmd set config /section:isapiFilters /-[name='JakartaXAPI']"
appcmd = "path\to\someapp.exe"
objShell.Run appcmd & " set config /section:isapiFilters /-[name='JakartaXAPI']"