我有这个批处理文件:
@echo off
echo StrText="Application created Successfully" > spk.vbs
echo set ObjVoice=CreateObject("SAPI.SpVoice") >> spk.vbs
echo ObjVoice.Speak StrText >> spk.vbs
start spk.vbs
该批处理文件在同一目录下创建spk.vbs,并用电脑语音输出文本“应用程序创建成功”。
现在我希望批处理文件在命令行上说出给它的文本文件的内容 (%1)。而 spk.vbs 文件应该在默认的 Windows 临时目录中创建。我怎样才能做到这一点?
***编辑 06.11.2012 20:24
同时我也放弃了使用批处理文件脚本生成vbs脚本文件的想法,想直接使用vbs脚本。虽然我是 VBS 的绝对初学者,但我创建了这个:
Set objFSO = CreateObject("Scripting.FileSystemObject")
strAFile = Wscript.Arguments(0)
Set objFile = objFSO.GetFile(strAFile)
If objFile.Size > 0 Then
Set objReadFile = objFSO.OpenTextFile(Wscript.Arguments(0), 1)
strContents = objReadFile.ReadAll
objReadFile.Close
set ObjVoice=CreateObject("SAPI.SpVoice")
ObjVoice.Speak strContents
Else
Wscript.Echo "The file is empty."
End If
它有效,但可能我犯了很多错误。有人能告诉我如何优化 vbs 脚本吗?谢谢!
***编辑 06.11.2012 22:19
这工作了几次之后,现在它不再工作了:现在电脑扬声器只输出“Y”和文本文件的第一个字符!这与我的脚本中的错误有关吗?
***编辑 10.11.2012 19:32 发现错误:上述脚本仅适用于 ANSI 编码的文本文件。它不适用于 UNICODE 文本文件!为什么?我怎样才能使它也与 UNICODE 文本文件一起使用?