我想從mysql獲取「進程列表」,並將其輸出到文件中以進行日誌記錄。這裏是VBScript代碼: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版本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 [選項] [數據庫] - ?,--help顯示此幫助並退出。 -I,--help同義詞 - ? --auto-rehash啓用自動重新哈希。一個不需要使用 '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;'")
這有什麼,我做錯了什麼?