我想在可视脚本中创建日志文件,包含带空格的文本并在末尾添加变量。 我调用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%
由于
答案 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