NAnt exec 不适用于标准输入重定向?
我正在尝试将 jsmin 与 nant 一起使用 - 它只使用 stdin 和 stdout 进行输入和输出。 nant 'exec' 任务允许您将输出重定向到文件,但不能从文件获取输入。
我尝试过使用“>”的“命令行” 和“<” 来引导输入和输出,但 nant 就消失了并且不会回来:(
我不敢相信以前没有人尝试过这样做。请帮忙!:)
I'm trying to use jsmin with nant - and it just uses stdin and stdout for input and output. The nant 'exec' task allows you to redirect the output to a file, but not get the input from a file.
I have tried with a 'commandline' using '>' and '<' to direct the input and output, but nant just goes away and doesn't come back :(
I can't believe no-one's tried to do this before. Please help! :)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
来自 http://www.mail-archive.com /[电子邮件受保护]/msg04575.html。 您应该能够执行类似以下操作:
From http://www.mail-archive.com/[email protected]/msg04575.html. You should be able to do something similar to:
我相信 NAnt 确实支持来自文件的输入。 由于构建文件是 XML,因此您必须使用 xml 编码的“<”。
I believe NAnt does support input from a file. Since the build file is XML you must use the xml encoded "<".
重定向和管道运算符是 shell 的一项功能,C 和 C# 支持通过其他方式(文件句柄)进行重定向。 我在某处读到,由于 C# Process 类不支持输入重定向,nant 仅为
提供输出重定向。要重定向命令输入,我们可以求助于 shell:
A) 使用
/c
调用cmd.exe
,如上面 acloutier 的示例所示。 必须小心空格! 实际上,该示例由于<
和y.txt
之间存在空格而失败,请将其删除以使示例正常运行。 您还可以在line
属性中转换value
属性,但在引用时必须小心。B) 由于我无法使用 exec-cmd 方法使管道正常工作,因此我使用
动态生成批处理文件:The redirect and pipe operators are an feature of the shell, C and C# support redirection by other means (file handles). Somewhere I read that because the C# Process class did not support input redirection, nant provides only output redirection for
<exec>
.To redirect command input we can resort to the shell:
A) Invoking
cmd.exe
with/c
as shown in the example of acloutier above. Care must be taken with whitespaces! Actually the example fails due to the space between<
andy.txt
, remove it to make the example work. You can can also convert thevalue
attribute in aline
attribute but then you have to be careful with quoting.B) Since I could not get pipes to work using the exec-cmd approach, instead I am generating a batch-file on the fly using
<echo>
: