2016-05-25 2 views
-1

Я пытаюсь запустить VBscript, который запускает оператор командной строки, который содержит слово set в командной строке cmd. VBscript признает его как зарезервированное слово и дает ошибку:с помощью команды SET в команде VBscript

Expected ')'

Команда, которую я пытаюсь запустить в VBScript является:

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

Как я могу избежать зарезервированное слово?

+1

Строки должны быть в кавычках. –

ответ

2

Microsoft VBScript compilation error: Expected ')' просто ошибка синтаксиса.

Run метод требует свой первый аргумент, чтобы быть string subtype и с учетом разделенных пробелами последовательности слово не может быть считаться для строки. Вы должны заключить его в кавычки (" ").

Run Method (Windows Script Host)

Runs a program in a new process.

Syntax

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

Arguments

  • object WshShell object.
  • strCommand String value indicating the command line you want to run. You must include any parameters you want to pass to the executable file.
  • intWindowStyle Optional. Integer value indicating the appearance of the program's window. Note that not all programs make use of this information.
  • bWaitOnReturn Optional. Boolean value indicating whether the script should wait for the program to finish executing before continuing to the next statement in your script. If set to true, script execution halts until the program finishes, and Run returns any error code returned by the program. If set to false (the default), the Run method returns immediately after starting the program, automatically returning 0 (not to be interpreted as an error code).

Использование

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

или

appcmd = "path\to\someapp.exe" 
objShell.Run appcmd & " set config /section:isapiFilters /-[name='JakartaXAPI']" 
+0

Действительно? Они просто не передали команду 'Run()' как строку, которая вызывает ошибку выполнения VBScript, а не ракетную науку. [@Noodles уже упомянули об этом более 2 часов назад] (http://stackoverflow.com/questions/37427824/using-set-in-vbscript-command#comment62360285_37427824). – Lankymart

+0

@ Lankymart да, действительно. 'Ожидаемый ')'' является ошибкой _compilation_ not _runtime_. – JosefZ

+0

И ваш вопрос? Я не сказал, что это ошибка времени выполнения. Я сказал, что ошибки «VBScript Runtime» * (ссылаются на движок скрипта) *, вы просто педантичны. По-прежнему считайте, что этот ответ мало влияет на фактическую проблему ... «Опция Explicit» и «On Error Goto 0» не помешали бы этой ошибке произойти * (вы сказали это сами, это ошибка компиляции) * или мне что-то не хватает ? – Lankymart

Смежные вопросы