2016-02-26 105 views
1

我正试图在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()将输出重定向到文本文件。有任何想法吗?

+0

'cmd'处理重定向,'ipconfig'命令在'cmd'中运行。所以在'cmd/c'前面加上命令行。请参阅'cmd /?'来寻求帮助。 – 2016-02-26 12:21:25

回答

6

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

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