私はこのバッチファイルを持っています:
@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) で指定されたテキスト ファイルの内容をバッチ ファイルに読み上げてもらいたいと考えています。また、代わりに、既定の Windows 一時ディレクトリに spk.vbs ファイルを作成する必要があります。これどうやってするの?
***編集 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」とテキストファイルの最初の文字のみを出力しています! これは私のスクリプトのエラーと関係がありますか?
***編集 2012 年 10 月 11 日 19:32 バグが見つかりました: 上記のスクリプトは、ANSI コードのテキスト ファイルでのみ機能します。UNICODE テキスト ファイルでは機能しません。なんで?UNICODEテキストファイルでも動作させるにはどうすればよいですか?