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