[已解决]同一脚本为什么就XP下报错呢?
本帖最后由 vszy 于 2016-3-25 06:56 编辑$OS=@OSVersion
$BIT=@OSArch
Select
case $BIT="X86" and ($OS="WIN_XP" or $OS="WIN_2003")
MsgBox("","","XPXPXP")
Case $BIT="X86" and ($OS="WIN_7" or $OS="WIN_2003")
MsgBox("","","786786")
Case $BIT="X64" and ($OS="WIN_7" or $OS="WIN_2003")
MsgBox("","","764764")
Case $BIT="X86" and ($OS="WIN_81" or $OS="WIN_8")
MsgBox("","","832832")
Case $BIT="X64" and ($OS="WIN_81" or $OS="WIN_8")
MsgBox("","","864864")
Case Else
MsgBox("","","未识别")
EndSelect这个代码编译后可以全系统正确运行。
换了个写法:$OS=@OSVersion
$BIT=@OSArch
Select
case $BIT="X86" and ($OS="WIN_XP" or $OS="WIN_2003")
$txt = XPXPXP
MsgBox("","",$txt)
Case $BIT="X86" and ($OS="WIN_7" or $OS="WIN_VISTA")
$txt = 786786
MsgBox("","",$txt)
Case $BIT="X64" and ($OS="WIN_7" or $OS="WIN_VISTA")
$txt = 764764
MsgBox("","",$txt)
Case $BIT="X86" and ($OS="WIN_81" or $OS="WIN_8")
$txt = 832832
MsgBox("","",$txt)
Case $BIT="X64" and ($OS="WIN_81" or $OS="WIN_8")
$txt = 864864
MsgBox("","",$txt)
Case Else
MsgBox("",""," 未能识别")
EndSelect编译后只有XP系统报错,其它正常,不知为何?望有XP环境的测试下。
把$txt等号后都用引号框起来 回复 2# haijie1223
问题是解决了,但是这是什么道理呢? 回复 3# vszy
我也说不出为什么哦,我只是觉得你辣么写不舒服~ 跟系统没关吧,应该只和Au3版本有关
$txt = XPXPXP
这种不带引号包围的写法,也只有在3.3.13.x(貌似)及以上的版本才能这样写,而且还必须有XPXPXP函数定义才不会报错。当然,如果本来就是赋值字符串,那不带引号直接就是错误。 你在群里问我都没说话,在这里又问起来了。典型的编程基础概念太差,字符串和数值分不开。$txt = 786786 不报错因为这是数值,换句话说这里是 七十八万七百六十八,而实际上数值 786786 和字符串 "786786" 仍有本质的区别。写$txt = 786786无非因为这个是数值,巧了被认为是合法的,而 $txt = XPXPXP 报错则是因为字符串必须用引号。拜托回看一下关于数据类型的相关说明,走得走稳,别那么快学飞。 LZ 真猛,把高手都楼上高手都引来了~
页:
[1]