2012-11-03 39 views
2

获取外壳命令的输出。在HAXE,是否有在sys类的方法(或一些其它类),它返回一个外壳命令的输出(例如,命令“ls”),或将我需要为每种目标语言自己实现这个方法?我希望找到一种调用与每个Haxe目标语言配合使用的shell命令的方法。在HAXE

+0

这将有可能在每个目标语言(使用条件编译)分别实现此方法,但它会更好,如果这个功能是HAXE的标准API可用。它是Haxe标准API的一部分吗? –

+1

很多搜​​索之后,我发现这个相关的线程(这似乎包含了回答我的问题!):http://haxe.org/forum/thread/3395#nabble-td5537667 –

回答

4

是的,你自己的意见包含了答案,那就是:

var output = new sys.io.Process("ls", []).stdout.readAll().toString(); 
+0

请问我需要进口任何额外的模块来让这个工作? –

+0

不需要注意,'sys.io.Process'只能在sys平台上使用。 –

3

还是跨平台的方式:sys.FileSystem.readDirectory('')

它也可能会更快,因为它不会调用额外的过程。

+0

这是一个有用的答案,但我认为它应该贴的回答为一个单独的问题(因为这是有关一个具体使用情况 - 让ls'的'输出)。 –

+0

另外,你能解释为什么其他方式做它不是跨平台吗? (是否'VAR输出=新sys.io.Process( “LS”,[])stdout.readAll()的toString();'产生不同的结果,取决于操作系统上?) –

+0

另外,是否有可能检测HAXE操作系统 –