我正在尝试将jsmin与nant一起使用 - 它只是使用stdin和stdout进行输入和输出。 nant'exec'任务允许您将输出重定向到文件,但不能从文件中获取输入。
我尝试使用'>''命令行'和'<'引导输入和输出,但不会消失而不会回来:(
我无法相信没有人试图这样做过。请帮忙! :)
答案 0 :(得分:2)
来自http://www.mail-archive.com/nant-developers@lists.sourceforge.net/msg04575.html。你应该可以做类似的事情:
<exec program="cmd.exe" workingdir=".">
<arg value="/c cacls" />
<arg value="${mdb.file}" />
<arg value="/E" />
<arg value="/G testpc\aspnet:F" />
<arg value="< y.txt" />
</exec>
答案 1 :(得分:0)
我相信NAnt支持来自文件的输入。由于构建文件是XML,因此必须使用xml编码的“&lt;”。
<exec program="somefile.exe" workingdir=".">
<arg value="< input.txt" />
</exec>
答案 2 :(得分:0)
重定向和管道运算符是shell的一个特性,C和C#通过其他方式支持重定向(文件句柄)。在某处我读到,因为C#Process类不支持输入重定向,nant仅为<exec>
提供输出重定向。
要重定向命令输入,我们可以使用shell:
A)使用cmd.exe
调用/c
,如上面的acloutier示例所示。必须注意空白!实际上,由于<
和y.txt
之间的空格,示例失败,删除它以使示例正常工作。您也可以在value
属性中转换line
属性,但是您必须小心引用。
B)由于我无法使用exec-cmd方法使管道工作,而是使用<echo>
动态生成批处理文件:
<echo file="${WD}/login.bat">"${P4}" diff -sd | "${P4}" -x- sync -f using</echo>
<exec program="login.bat" basedir="${WD}" workingdir="${P4.WorkspaceRoot}" />