gpt4 book ai didi

vbscript - 了解 VBS 多行表示法

转载 作者:行者123 更新时间:2023-12-04 09:04:45 25 4
gpt4 key购买 nike

我试图了解有关 VBS 将单行代码拆分为多行的方式。
在下面的函数中 _在两个地方使用字符将执行分成两行,一切都很好。

For Each objItem in colItems
if i=0 then
header = ""
For Each param in objItem.Properties_
header = header & param.Name & vbTab
Next
WScript.Echo header
i=1
end if
serviceData = ""
For Each param in objItem.Properties_
serviceData = serviceData & param.Value & vbTab
Next
WScript.Echo serviceData
Next
我不明白的是这应该如何在一行上显示。当我使用以下任何一行修改任何一行时,我都会收到错误消息。
  • For Each param in objItem.Propertiesheader = header & param.Name & vbTab
  • For Each param in objItem.Properties.header = header & param.Name & vbTab
  • For Each param in objItem.Properties header = header & param.Name & vbTab

  • 错误影响:
    C:\Program Files (x86)\ManageEngine\AppManager12\working\conf\application\scripts\wmiget.vbs(86,2) Microsoft VBScript runtime error: Object doesn't support this property or method: 'objItem.PropertiesserviceData'
    如何在单行上正确表示上述内容?

    最佳答案

    这里的问题是您使用的是换行符 _在不需要时继续一行。
    仅当您需要一行代码跨越多行时才使用它,例如使用您的示例;

    For Each _
    param _
    in _
    objItem.Properties
    serviceData = serviceData & param.Value & vbTab
    Next
    会工作(有点无意义)因为单行
    For Each param in objItem.Properties
    跨越多条线。
    所以,因为行;
    For Each param in objItem.Properties
    是单行代码,不需要继续,因为预期是下一行代码。但是,当您提供它时,它会导致 VBScript 出错;

    Microsoft VBScript compilation error: Expected end of statement


    这是 VBScript 告诉您该行尚未完成并且仍然期望代码语句结束的方式。
    如果您确实想在一行中跨越多个代码语句,请使用冒号 ( : ) 作为语句分隔符,即;
    For Each param in objItem.Properties : serviceData = serviceData & param.Value & vbTab : Next

    有用的链接
  • Line Continuation Character ( _ ) also known as a Statement Break.
  • Breaking a String Across Multiple Lines (专注于字符串但谈论行连续字符)。
  • VBScript, purpose of colon?
  • 关于vbscript - 了解 VBS 多行表示法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63472162/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com