将命令的输出重定向到Haxe

时间:2016-02-26 11:17:30

标签: cmd haxe

我正在尝试在Haxe中执行以下代码。

class File_Operations
{
    public static function main()
    {
        Sys.command("ipconfig",[">","C:\\Users\\ila5\\Desktop\\Temp.txt"]);
    }
}

但是,我收到以下错误

Error: unrecognized or incomplete command line.

USAGE:
    ipconfig [/allcompartments] [/? | /all |
                                 /renew [adapter] | /release [adapter] |
                                 /renew6 [adapter] | /release6 [adapter] |
                                 /flushdns | /displaydns | /registerdns |
                                 /showclassid adapter |
                                 /setclassid adapter [classid] |
                                 /showclassid6 adapter |
                                 /setclassid6 adapter [classid] ]

where
    adapter             Connection name
                       (wildcard characters * and ? allowed, see examples)

    Options:
       /?               Display this help message
       /all             Display full configuration information.
       /release         Release the IPv4 address for the specified adapter.
       /release6        Release the IPv6 address for the specified adapter.
       /renew           Renew the IPv4 address for the specified adapter.
       /renew6          Renew the IPv6 address for the specified adapter.
       /flushdns        Purges the DNS Resolver cache.
       /registerdns     Refreshes all DHCP leases and re-registers DNS names
       /displaydns      Display the contents of the DNS Resolver Cache.
       /showclassid     Displays all the dhcp class IDs allowed for adapter.
       /setclassid      Modifies the dhcp class id.
       /showclassid6    Displays all the IPv6 DHCP class IDs allowed for adapter.
       /setclassid6     Modifies the IPv6 DHCP class id.


The default is to display only the IP address, subnet mask and
default gateway for each adapter bound to TCP/IP.

For Release and Renew, if no adapter name is specified, then the IP address
leases for all adapters bound to TCP/IP will be released or renewed.

For Setclassid and Setclassid6, if no ClassId is specified, then the ClassId is removed.

Examples:
    > ipconfig                       ... Show information
    > ipconfig /all                  ... Show detailed information
    > ipconfig /renew                ... renew all adapters
    > ipconfig /renew EL*            ... renew any connection that has its
                                         name starting with EL
    > ipconfig /release *Con*        ... release all matching connections,
                                         eg. "Wired Ethernet Connection 1" or
                                             "Wired Ethernet Connection 2"
    > ipconfig /allcompartments      ... Show information about all
                                         compartments
    > ipconfig /allcompartments /all ... Show detailed information about all
                                         compartments

当我直接在cmd中运行上面的命令时,它运行良好。

我想知道如何在Haxe中使用Sys.command()将输出重定向到文本文件。有什么想法吗?

1 个答案:

答案 0 :(得分:6)

我认为“>”运算符将在这里被解释为一个参数(而不是stdout重定向),但是使用Sys.command你无法避免它。 你可以做的是直接在haxe中读取“ipconfig”命令的stdout并将其保存为文件。 此示例代码应该适合您

var p = new Process("ipconfig", []);
var out:String = p.stdout.readAll().toString();
p.close();
File.saveContent("ipconfig.txt", out);