0

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

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

生成.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%

谢谢

4

1 回答 1

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
于 2013-08-27T12:21:54.283 回答