2011-07-13 8 views
1

私はVBSを使用して更新プログラムをインストールするためのバッチファイルを作成しています。私が期待した通りに動作することを確認するために、私はこの小さなテストスクリプトを作りましたが、生成されたバッチファイルは最初の文字が何であっても認識できない文字で起動時にエラーになります。 VBSスクリプト:Windows 7のVBSで生成されたバッチファイルは起動しません。

option explicit 

Dim objFSO, objFile, objWShell 

Set objFSO = CreateObject("Scripting.FileSystemObject") 
Set objFile = objFSO.CreateTextFile("Test.bat", 2, True) 
Set objWShell = CreateObject("WScript.Shell") 

objFile.Write("@echo off" & vbCrLf & "echo " & chr(34) & "this is a test" & chr(34) & vbCrLf & "echo " & chr(34) & "This is only a test" & chr(34) & vbCrLf & "timeout /t 5") 
Set objFile = Nothing 

objWShell.Run "Test.bat" 

wscript.quit 

スクリプトを実行するには、作成し、瞬時にバットが実行されているウィンドウを閉じますが、この場合は、オフ@echoに(最初のコマンドが渡されるコマンドライン利回りから生成されたバットを立ち上げたが、持っています他の人と一緒に試してみた)には最初に余分な文字が含まれていて、バッチファイルの最初のコマンドの最初の文字だけがその文字(実線の四角形として表示されます。したがって、私は '▬@は認識された内部または外部のコマンド、実行可能なプログラムまたはバッチファイルではありません。

バッチファイルと生成スクリプトの両方を表示するときにnppの「すべての文字を表示」を選択すると、余分な文字は表示されず、両方の行区切りがすべてcrlfになります。何か案は?

答えて

1

CreateTextFileの最後のパラメータをFalseに変更すると、ファイルがASCIIになり、正しく実行されます。 (現在、コマンドプロンプトで正常に再生されないUnicodeとして保存しています)

+0

が表示されます。それを見て、私はそれがOpenTextFileメソッドであるかのように引数を与えていました。ありがとう! – Crimius

関連する問題