生成登录VBS,包含空格和变量的文本

时间:2013-08-23 10:04:36

标签: shell logging vbscript

我想在可视脚本中创建日志文件,包含带空格的文本并在末尾添加变量。 我调用Generate.bat,它为每个日志行添加日期和时间,然后我添加一个文本,然后添加变量。 在第一个选项中,我得到[Date] Var_Number1(如果我添加任何空格,它将在那里结束) 在第二个选项,这是我的问题,我得到[日期] Var数字,我想要的空格,但我无法添加变量,我做了很多测试,但我无法得到它。

DIM variable
variable = 1

CreateObject("Shell.Application").ShellExecute "C:\Generatelog.bat", "C:\Sample.log Var_Number" & variable, "", "open", 0

CreateObject("Shell.Application").ShellExecute "C:\Generatelog.bat", "C:\Sample.log ""Var Number""", "", "open", 0

Generate.bat代码:

set V_HOUR=%time: =0%
set V_DATEHOUR=%date% - %V_HOUR:~0,8%
set V_FILE=%1
set V_TEXT=%~2

echo [%V_DATEHOUR%] - %V_TEXT% >> %V_FILE%

由于

1 个答案:

答案 0 :(得分:0)

由于您没有提供任何非工作代码,我无法解释您的错误,但以下情况应该有效,假设您希望参数为"Var Number1"

CreateObject("Shell.Application").ShellExecute "C:\Generatelog.bat" _
  , "C:\Sample.log ""Var Number" & variable & """", "", "open", 0

但是,炮轰是一种相当复杂的记录方式,我建议不要这样做。写入日志文件可以在VBScript中完美地处理,如下所示:

Set fso = CreateObject("Scripting.FileSystemObject")

logfile  = "C:\Sample.log"
variable = 1
message  = "Var Number" & variable

Set f = fso.OpenTextFile(logfile, 2, True)
f.WriteLine "[" & Date & " - " & Time & "] " & message
f.Close

由于我经常需要这样的东西,我将我的日志记录例程包装在一个类(CLogger)中,可以很容易地包含在其他脚本中。它可以像这样使用:

'import or copy/paste the class code

Set clog = New CLogger
clog.IncludeTimestamp = True
clog.LogFile = "C:\Sample.log"
clog.LogToConsole = False

variable = 1

clog.LogInfo "Var Number" & variable