【问题标题】:VBScript if, do, while test not working rightVBScript if, do, while test 不能正常工作
【发布时间】:2016-10-08 09:14:47
【问题描述】:
'Assign name, age, phone number, address, and birthday variables

WScript.Echo ("Please Enter Employee's name")
name = WScript.StdIN.ReadLine
If name = Null then
Wscript.Echo ("You must Enter Employee's Name")
Do While name = nothing
    WScript.Echo ("Please Enter Employee's name")
    name = WScript.StdIN.ReadLine
Loop
End If

这是我的 vbscript 代码,试图测试 name 变量是否为空,以及是否为空循环直到不为空。

【问题讨论】:

  • 您正在检查名称是否与Nullnothing 相等;我不认为这两个条件可以同时成立。另外,不应该是Do While name Is Nothing吗? developer.rhino3d.com/guides/rhinoscript/nothing_empty_null
  • 名称为空字符串。所以Loop Until Name <> ""Empty 指的是未初始化的变量。
  • @Noodles 最简单的检查是Do While Len(Trim(name & "")) < 1。避免所有NothingEmptyNull 惨败!。
  • 那引入了一个函数调用

标签: vbscript


【解决方案1】:

我尝试了下面的代码并将其作为cscript test-input.vbs 运行,这似乎可以满足您的需求。

测试输入.vbs

'Assign name, age, phone number, address, and birthday variables

WScript.Echo ("Please Enter Employee's name")
name = WScript.StdIN.ReadLine
Do While name = ""
    WScript.Echo ("Name is required - Please Enter Employee's name")
    name = WScript.StdIN.ReadLine
Loop

【讨论】:

  • @Mouseman 我倾向于使用Do While Len(Trim(name & "")) < 1 之类的方法来避免有人在输入行中输入{space}
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-31
  • 2011-03-14
  • 2015-05-14
相关资源
最近更新 更多