【发布时间】:2014-10-08 03:40:32
【问题描述】:
我在 HTA 中编写的 VBscript 的一部分要求用户在文本框中输入名称,该文本框将生成具有该名称的文件夹。我正在检查脚本以确保没有使用非法字符或名称。我陷入困境的地方是试图确保如果用户输入 COM1 或 LPT1,他们将被告知不允许他们尝试使用的名称,而不是出现脚本错误。问题是如果不为 COM1 到 COM9 和 LPT1 到 LPT9 中的字母可以在不同情况下排列(例如 com1、Com1、cOm1 等)的所有可能方式编写 If 语句,我无法弄清楚如何做到这一点。下面的代码 sn-p 说明了我的意思。
sFldrName = BasicTextbox.Value
sFldrBadMsg = "You've chosen an illegal folder name."
If sFldrname = "COM1" Then
Msgbox sFldrBadMsg
ElseIf sFldrname = "COM2" Then
Msgbox sFldrBadMsg
ElseIf sFldrname = "COM3" Then
Msgbox sFldrBadMsg
在上面的示例中,用户在文本框中输入的任何内容都分配给“sFldrname”。然后脚本检查分配给“sFldrname”的字符串是COM1 还是COM2 还是COM3。问题是我只能在指定的确切情况下检查这些字符串。如果用户输入 COM1,他们会收到我的警告信息。但是,如果他们输入 com1(全小写)或 CoM1(混合大小写),他们将收到脚本错误,因为无论大小写如何,它仍然是非法名称。为了用我上面使用的方法来解决这个问题,我必须做这样的事情:
sFldrName = BasicTextbox.Value
sFldrBadMsg = "You've chosen an illegal folder name."
If sFldrname = "COM1" Then
Msgbox sFldrBadMsg
ElseIf sFldrname = "Com1" Then
Msgbox sFldrBadMsg
ElseIf sFldrname = "COm1" Then
Msgbox sFldrBadMsg
ElseIf sFldrname = "cOm1" Then
Msgbox sFldrBadMsg
ElseIf sFldrname = "coM1" Then
Msgbox sFldrBadMsg
ElseIf sFldrname = "cOM1" Then
Msgbox sFldrBadMsg
ElseIf sFldrname = "CoM1" Then
Msgbox sFldrBadMsg
ElseIf sFldrname = "com1" Then
Msgbox sFldrBadMsg
对于 COM2 到 COM9 和 LPT1 到 LPT9,我也必须这样做。我真的不想这样做。那么,当我检查“sFldrname”的值以查看它是什么字符串时,有没有办法忽略该字符串的大小写?或者,有没有更好的方法来做我想做的事情?谢谢。
【问题讨论】:
标签: vbscript