How to redirect command-Line output

Exclusion de responsabilité du contenu obsolète de la base de connaissances

Cet article a été rédigé sur les produits pour lesquels Microsoft n’offre plus aucune prise en charge. Par conséquent, cet article est proposé « en l’état » et ne sera plus mis à jour.

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:
Propriétés

ID d'article : 278411 - Dernière mise à jour : 19 juin 2014 - Révision : 1

Commentaires