Windows 7 VBS生成的批处理文件无法启动

时间:2011-07-13 17:16:17

标签: windows-7 vbscript batch-file

我正在使用VBS构建批处理文件以安装更新。为了确保它按照我预期的方式工作,我构建了这个小测试脚本,但无论第一个字符是什么,生成的批处理文件在启动时都会出现错误,并带有无法识别的字符。 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

运行脚本会创建并立即关闭bat运行的窗口,但是从命令行启动生成的bat会导致传递的第一个命令(在这种情况下@echo关闭,但已经尝试过其他命令)包含一个额外的命令开头的字符,只传递该字符(显示为实心方块,可能是一个窗口不知道)和批处理文件中第一个命令的第一个字符。因此,我得到的类似于'▬@不是公认的内部或外部命令,可操作程序或批处理文件。'

在查看批处理文件和生成脚本时,在npp中选择“显示所有字符”不会显示额外的字符,并且两者中的所有换行符都是crlf。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

将CreateTextFile的最后一个参数更改为False会使文件成为ASCII,然后它会正常运行。 (您目前将其保存为Unicode,通常不会在命令提示符下运行良好)

相关问题