【发布时间】:2011-07-13 17:16:16
【问题描述】:
我正在使用 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 off,但已与其他命令一起尝试)包含一个额外的字符开头,并且只传递该字符(显示为实心正方形,大概是一个窗口不知道)和批处理文件中第一个命令的第一个字符。因此,我得到类似于“▬@ 不是可识别的内部或外部命令、可运行程序或批处理文件。”
在查看批处理文件和生成脚本时,在 npp 中选择“显示所有字符”不会显示多余的字符,并且两者中的所有换行符都是 crlf。有什么想法吗?
【问题讨论】:
标签: windows-7 vbscript batch-file