我正在尝试从 mysql 获取“进程列表”并将其输出到文件中以用于记录目的。这是 VBScript 代码:
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Const TristateUseDefault = -2, TristateTrue = -1, TristateFalse = 0
Dim fso, ts, fileObj, TextLine
Set fso = CreateObject("Scripting.FileSystemObject")
FileName = "mysqlprocess.log"
If Not(fso.FileExists(FileName)) Then
'File does not exist'
fso.CreateTextFile FileName
End If
'Obtain a file object for the file'
Set fileObj = fso.GetFile(FileName)
' Open a text stream for output.
Set ts = fileObj.OpenAsTextStream(ForAppending, TristateUseDefault)
' Write to the text stream.
ts.WriteLine Date & " - " & Time
ts.WriteLine
Set objShell = WScript.CreateObject("WScript.Shell")
'comspec = objShell.ExpandEnvironmentStrings("%comspec%")'
Set objExec = objShell.Exec("C:\Program Files\MySQL\MySQL Server 5.5\bin\mysql -u root -ppassword mydatabase -t -e 'show processlist;'")
Do
line = objExec.StdOut.ReadLine()
strOutput = strOutput & line & vbcrlf
Loop While Not objExec.Stdout.atEndOfStream
ts.WriteLine strOutput
ts.WriteLine "=============================================="
ts.Close
这是写入 mysqlprocesslist.log 文件的内容:
2013 年 5 月 6 日 - 下午 1:08:58
C:\Program Files\MySQL\MySQL Server 5.5\bin\mysql Ver 14.14 Distrib 5.5.15,适用于 Win64 (x86) 版权所有 (c) 2000, 2010,Oracle 和/或其附属公司。版权所有。
Oracle 是 Oracle Corporation 和/或其附属公司的注册商标。其他名称可能是其各自所有者的商标。
用法:C:\Program Files\MySQL\MySQL Server 5.5\bin\mysql [OPTIONS] [database] -?, --help 显示此帮助并退出。-I, --help - 的同义词?--auto-rehash 启用自动重新散列。不需要使用“rehash”来完成表格和字段,但启动和重新连接可能需要更长的时间。使用 --disable-auto-rehash 禁用。(默认为开;使用 --skip-auto-rehash 禁用。) -A, --no-auto-rehash 不自动重新散列。必须使用“rehash”来完成表格和字段。这可以更快地启动 mysql 并在重新连接时禁用重新散列。[…………]
所以这就像它没有读出论点一样工作。我试图更改 Exec 行以包含空格,但这也不起作用:
Set objExec = objShell.Exec("C:\Program Files\MySQL\MySQL Server 5.5\bin\mysql" & " -u root -ppassword mydatabase -t -e 'show processlist;'")
我在这里做错了什么吗?