Option Explicit Dim arrCommands, arrLines, arrPATH Dim blnFirstLink Dim i, intPos Dim objExec, objFSO, objHTMLFile, objRE, wshShell Dim strCommand, strDEVCON, strHTMLCode, strHTMLFile, strLine, strMsg, strOutput, strPATH, strScriptFile, strScriptVer, strVersion strScriptVer = "1.00" strMsg = "" If WScript.Arguments.Named.Count > 0 Then Syntax If WScript.Arguments.Unnamed.Count > 1 Then Syntax Set wshShell = CreateObject( "WScript.Shell" ) Set objExec = wshShell.Exec( "DEVCON.EXE Help" ) If objExec.ExitCode <> 0 Then strMsg = "ERROR: DEVCON not found, not in the current directory, nor in the PATH\n\n" Syntax End If Set objFSO = CreateObject( "Scripting.FileSystemObject" ) With objFSO If WScript.Arguments.Unnamed.Count = 1 Then If .FolderExists( .GetParentFolderName( WScript.Arguments.Unnamed(0) ) ) Then strHTMLFile = .GetAbsolutePathName( WScript.Arguments.Unnamed(0) ) Else strMsg = "ERROR: invalid path for HTML output file\n\n" Syntax End If Else strScriptFile = WScript.ScriptFullName strHTMLFile = .BuildPath( .GetParentFolderName( strScriptFile ), .GetBaseName( strScriptFile ) & ".html" ) End If End With strDEVCON = "" strVersion = "" strPATH = wshShell.ExpandEnvironmentStrings( wshShell.CurrentDirectory & ";%PATH%" ) arrPATH = Split( strPATH, ";" ) For i = 0 To UBound( arrPATH ) If Trim( arrPATH(i) ) <> "" Then If strDEVCON = "" Then With objFSO If .FileExists( .BuildPath( arrPATH(i), "DEVCON.EXE" ) ) Then strDEVCON = .BuildPath( arrPATH(i), "DEVCON.EXE" ) strVersion = .GetFileVersion( strDEVCON ) End If End With End If End If Next Set arrCommands = CreateObject( "System.Collections.ArrayList" ) strHTMLCode = "\n\n
\n" strOutput = objExec.StdOut.ReadAll arrLines = Split( strOutput, vbCrLf ) blnFirstLink = False For i = 0 To UBound( arrLines ) strLine = Escape( arrLines(i) ) If InStr( arrLines(i), Space( 9 ) ) > 2 And Left( arrLines(i), 4 ) <> "help" And Left( arrLines(i), 1 ) <> "-" Then intPos = InStr( strLine, " " ) strCommand = Left( strLine, intPos - 1 ) arrCommands.Add strCommand strLine = "" & strCommand & "" & Escape( Mid( strLine, intPos ) ) If Not blnFirstLink Then strLine = "\n" & strLine blnFirstLink = True End If End If strHTMLCode = strHTMLCode & "\n" & strLine Next arrCommands.Sort strHTMLCode = SuperTrim( strHTMLCode ) & "\n\n" strHTMLCode = strHTMLCode & "
Type DEVCON help command
on the command line for detailed help on command.
" strHTMLCode = strHTMLCode & SuperTrim( Escape( objExec.StdOut.ReadAll ) ) strHTMLCode = strHTMLCode & "\n\n\n\n
\n\n" End If Next strHTMLCode = Replace( strHTMLCode & "
\n\n
HTML page generated by devcon_help.vbs, Version " & strScriptVer & "
\nWritten by Rob van der Woude
\nhttp://www.robvanderwoude.com