Windows10运行vbs脚本报未结束的字符串常量错误

报错

用记事本写vbs脚本,保存为UTF-8格式,运行时报错

报错截屏

报错内容为:未结束的字符串常量

解决方法

将记事本文件另存为ANSI格式
更改文件格式为ANSI
之后就可以解决该报错了

报错原因

ANSI

ANSI是一种字符代码,为使计算机支持更多语言,通常使用 0x00~0x7f 范围的1 个字节来表示 1 个英文字符。超出此范围的使用0x80~0xFFFF来编码,即扩展的ASCII编码。
不同的国家和地区制定了不同的标准,由此产生了 GB2312、GBK、GB18030、Big5、Shift_JIS 等各自的编码标准。这些使用多个字节来代表一个字符的各种汉字延伸编码方式,称为 ANSI 编码。在简体中文Windows操作系统中,ANSI 编码代表 GB2312编码;在繁体中文Windows操作系统中,ANSI编码代表Big5;在日文Windows操作系统中,ANSI 编码代表 JIS 编码。

UTF-8

UTF-8(8位元,Universal Character Set/Unicode Transformation Format)是针对Unicode的一种可变长度字符编码。它可以用来表示Unicode标准中的任何字符,而且其编码中的第一个字节仍与ASCII相容,使得原来处理ASCII字符的软件无须或只进行少部分修改后,便可继续使用。因此,它逐渐成为电子邮件、网页及其他存储或传送文字的应用中,优先采用的编码。

原因

简体中文版Windows10电脑编译软件中的编码设置是GBK2312编码,当txt文本文件以UTF-8的编码格式保存时,由于两种编码方式不同(尤其是有中文存在的情况下),编译软件读取就会出现乱码的现象。
而ANSI格式是一种随使用地区而变化的格式,再简体中文版Windows10电脑中设置的就是GBK2312格式,所以可以顺利被编译软件读取并运行。

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这个错误通常是由于脚本中的引号正确配对导致的。请确保在每个字符串常量的开头和结尾都有一对引号。下面是修正后的代码: ```vbscript Set objShell = WScript.CreateObject("WScript.Shell") WScript.Echo "请将鼠标移到指定位置后按下空格键开始自动双击屏幕。" WScript.Sleep 500 ' 等待用户按下空格键 Do While Not objShell.AppActivate("VBScript") WScript.Sleep 100 Loop ' 获取鼠标坐标 Set objMouse = CreateObject("WScript.Shell").Exec("cmd /c echo %MOUSE_X% %MOUSE_Y%") strOutput = objMouse.StdOut.ReadAll arrCoords = Split(strOutput, " ") intX = arrCoords(0) intY = arrCoords(1) WScript.Echo "已获取鼠标坐标:" & intX & ", " & intY dtmEndTime = DateAdd("n", 1, Now) ' 运行一分钟的时间限制 blnExitLoop = False Do While Now < dtmEndTime And Not blnExitLoop ' 检查空格键是否被按下 If objShell.AppActivate("VBScript") Then strKeyState = objShell.SendKeys("{SPACE}", True) ' 如果空格键被再次按下,则退出循环 If strKeyState = "True" Then blnExitLoop = True End If End If ' 执行双击操作 objShell.Run "cmd /c echo WScript.Sleep 1000 ^& WScript.SendKeys ""{LEFTCLICK}"" > temp.vbs", 0, True objShell.Run "wscript.exe temp.vbs", 0, True objShell.Run "cmd.exe /C del temp.vbs", 0, True Loop WScript.Echo "已退出循环并关闭脚本。" ``` 请尝试使用修正后的代码,看看是否还会报错。如果还有其他问题,请提供详细的错误信息和堆栈跟踪,以便我更好地帮助你解决问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值