VBS Ожидаемый конец заявления - PullRequest
0 голосов
/ 10 марта 2010

Я новичок в сценариях VBS.Спасибо за все ваши комментарии!Я исправил ошибку 800A0401 сейчас, благодаря вашей помощи.Но теперь я получаю ошибку 800A0414 в строке 13, символ 1 «Требуется объект», который относится к строке: Set MimeTypesToAddArray = Array (". Manifest", "application / manifest", ".xaml", _

Теперь я понимаю, как работает подсчет строк, он подсчитывает строки комментариев. Я все еще рассматриваю все ваши предложения, но если у вас есть какие-либо советы о том, как я могу исправить эту ошибку сейчас, это было бы супер!

(Я не согласен с тем, что нужно ставить «Dim» на отдельной строке от значений типа, потому что я видел очень много примеров этого. Кто-нибудь из вас является экспертом по VBS? 0

' This script adds the necessary Windows Presentation Foundation MIME types 
' to an IIS Server.
' To use this script, just double-click or execute it from a command line.
' Running this script multiple times results in multiple entries in the IIS MimeMap.
' Set the MIME types to be added
Dim MimeMapObj
Dim MimeMapArray
Dim WshShell
Dim oExec
Const ADS_PROPERTY_UPDATE = 2

Dim MimeTypesToAddArray
Set MimeTypesToAddArray = Array(".manifest", "application/manifest", ".xaml", _
    "application/xaml+xml", ".application", "application/x-ms-application", _
    ".deploy", "application/octet-stream", ".xbap", "application/x-ms-xbap", _
    ".xps", "application/vnd.ms-xpsdocument")

' Get the mimemap object 
Set MimeMapObj = GetObject("IIS://LocalHost/MimeMap")

' Call AddMimeType for every pair of extension/MIME type
For counter = 0 to UBound(MimeTypesToAddArray) Step 2
    AddMimeType MimeTypesToAddArray(counter), MimeTypesToAddArray(counter+1)
Next

' Create a Shell object
Set WshShell = CreateObject("WScript.Shell")

' Stop and Start the IIS Service
Set oExec = WshShell.Exec("net stop w3svc")
Do While oExec.Status = 0
    WScript.Sleep 100
Loop

Set oExec = WshShell.Exec("net start w3svc")
Do While oExec.Status = 0
    WScript.Sleep 100
Loop

Set oExec = Nothing

' Report status to user
WScript.Echo "Windows Presentation Foundation MIME types have been registered."

' AddMimeType Sub
Sub AddMimeType(ByVal Ext, ByVal MType)

    ' Get the mappings from the MimeMap property. 
    MimeMapArray = MimeMapObj.GetEx("MimeMap")

    ' Add a new mapping. 
    i = UBound(MimeMapArray) + 1
    ReDim Preserve MimeMapArray(i)
    MimeMapArray(i) = CreateObject("MimeMap")
    MimeMapArray(i).Extension = Ext
    MimeMapArray(i).MimeType = MType
    MimeMapObj.PutEx ADS_PROPERTY_UPDATE, "MimeMap", MimeMapArray
    MimeMapObj.SetInfo()

End Sub

Ответы [ 3 ]

6 голосов
/ 10 марта 2010

Не думаю, что вы можете затемнить переменную и записать в нее одну и ту же строку.

Попробуйте это как отдельные строки:

Dim MimeTypesToAddArray
MimeTypesToAddArray = Array(".manifest", "application/manifest", ".xaml", _ 
    "application/xaml+xml", ".application", "application/x-ms-application", _ 
    ".deploy", "application/octet-stream", ".xbap", "application/x-ms-xbap", _ 
    ".xps", "application/vnd.ms-xpsdocument") 
1 голос
/ 10 марта 2010

Если вы собираетесь объединить оператор Dim с присваиванием в одной строке, вы должны сделать это следующим образом:

Dim MimeTypesToAddArray : MimeTypesToAddArray = Array()
1 голос
/ 10 марта 2010

Я не знаком с VBS, только VB6, но я считаю, что ошибка в том, что вы выполняете DIM и присваиваете одну и ту же строку. VB6 не позволил это, поэтому я предполагаю, что VBS тоже не позволяет. Так что, может быть, это то, что вы хотите. Кроме того, он выглядит так, будто считает пустые строки и комментарии.

Dim MimeTypesToAddArray 
MimeTypesToAddArray = Array(".manifest", "application/manifest", ".xaml", _
    "application/xaml+xml", ".application", "application/x-ms-application", _
    ".deploy", "application/octet-stream", ".xbap", "application/x-ms-xbap", _
    ".xps", "application/vnd.ms-xpsdocument")
...