2011-07-13 82 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