How to redirect command-Line output (278411)



The information in this article applies to:

  • Microsoft Windows Script Host 1.0
  • Microsoft Windows Script Host 2.0

This article was previously published under Q278411

SUMMARY

The purpose of this article is to describe how to redirect command-line output by way of Windows Scripting Host (WSH) in VBScript (.vbs) and JScript (.js).

MORE INFORMATION

The following two lines are required to use any console command with WSH:
  • In VBScript:
    Set WshShell = WScript.CreateObject("WScript.Shell")
    WshShell.Run("%comspec% /c <Console Command>")
    					
  • In JScript:
    var WshShell = WScript.CreateObject("WScript.Shell");
    WshShell.Run("%comspec% /c <Console Command>");
    					
The following is a specific example of how to use the DIR command. For this command, typical arguments are a source directory path and a destination output file:
  • In VBScript:
    Option Explicit
    
    Dim WshShell
    Dim fso
    Dim src, dest
    
    'Create the object that is used to execute the command-line output.
    Set WshShell = Wscript.CreateObject("Wscript.Shell")
    'Create the object that is used to create your destination file.
    Set fso = WScript.CreateObject("Scripting.FileSystemObject")
    
    'Read in the arguments that are passed to the script.
    If Wscript.Arguments.Count = 2 Then
      'Store the arguments.
      src = WScript.Arguments(0)
      dest = WScript.Arguments(1)
      'Make sure that the source path exists.
      If fso.FolderExists(src) Then
        'Make sure the destination path exists.
        If Left(dest, InstrRev(dest, "\")) = "" or fso.FolderExists(Left(dest, InstrRev(dest, "\"))) Then
          'Execute the command-line output command.
          WshShell.Run "%comspec% /c Dir " & chr(34) & src & chr(34) & " > " & chr(34) & dest & chr(34)
        Else
          'Present useful errors.
          WScript.Echo "** Destination path not found ** " & Left(dest, InstrRev(dest, "\"))
        End If
      Else
        WScript.Echo "** Source directory not found ** " & src
      End If
    Else
      Wscript.Echo "dir.vbs usage: dir.vbs <source path> <destination file>"
      Wscript.Echo "example: dir.vbs c:\temp c:\test.txt"
    End If
    
    					
  • In JScript:
    var sPath
    var dPath
    var x
    var quote = String.fromCharCode(34);
    // Create the object to run the command-line output.
    var WshShell = WScript.CreateObject("WScript.Shell");
    // Create the object that is used to write the output file.
    var fso = WScript.CreateObject("Scripting.FileSystemObject");
    // Read in the arguments that are passed to the command.
    var objArgs = WScript.Arguments;
    // Error checking to make sure that two arguments are passed.
    if (objArgs.length == 2)
    {
      sPath = objArgs.item(0);
      dPath = objArgs.item(1);
      // Make sure that the source path exists.
      if (fso.FolderExists(sPath))
      {
        x = dPath.lastIndexOf("\\");
        // Make sure the destination path exists.
        if ((x == -1) || (fso.FolderExists(dPath.substring(0, x))))
        {
          WshShell.Run("%comspec% /c Dir " + quote + sPath + quote + " > " + quote + dPath + quote);
        }
        else
          WScript.Echo("** Destination path not found ** " & tmp2dPath);
      }
      else
        WScript.Echo("** Source path not found ** " & sPath);
    }
    else
    {
      WScript.Echo("dir.js usage: dir.js <source path> <destination path>"); 
      WScript.Echo("example: cscript.exe dir.js c:\\temp c:\\dir.txt");
    }
    
    					
For more information, visit the Microsoft Developer Network (MSDN) Web site: For additional information, visit the Microsoft Windows Script Technologies Web site:

Modification Type:MajorLast Reviewed:5/20/2005
Keywords:kbDSWManage2003Swept kbhowto KB278411 kbAudDeveloper