2016-02-26 99 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); 
相關問題