VBS预期结束声明

时间:2010-03-09 21:02:00

标签: iis-6 vbscript

我是VBS脚本的新手。谢谢你们的评论!我现在修复了错误800A0401,感谢您的帮助。但现在我在第13行收到错误800A0414,字符1“需要对象”,它指的是行: 设置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 个答案:

答案 0 :(得分:6)

我认为您不能对变量进行Dim并在同一行上写入它。

尝试将这些作为单独的行:

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 :(得分:1)

我不熟悉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")

答案 2 :(得分:1)

如果您要将Dim语句与作业分配在同一行上,则必须这样做:

Dim MimeTypesToAddArray : MimeTypesToAddArray = Array()