我正在创建一个使用一些hadoop命令的测试堆栈,更具体地说,我是从s3复制一些文件并格式化namenode。
我正在尝试抑制输出,将其发送到文件或更改显示的文本的颜色,因为它当前显示为红色。
目前我正在处理这个问题:
#Copy the models that are required for the streaming job - AWS installed on AMI.
$HOST.UI.RawUI.ForegroundColor = "Yellow"
write-host "Updating the jar with application.conf"
& 7z u c:\jarname.jar c:\jarname\application.conf
write-host "Downloadingfrom s3"
& hadoop fs -cp s3n://files /tmp
$HOST.UI.RawUI.ForegroundColor = "White"
前景色选项是最近添加的,并且不会被命令遵守,因为它仍然以红色显示。
原因是测试人员将红色视为错误。
任何建议都会很棒,提前谢谢
答案 0 :(得分:1)
- 如果唯一的问题是使输出相当漂亮,前景颜色将起作用,但是对于使用非默认配置的任何人来说它仍然看起来很奇怪。理想情况下,您希望将错误流的输出重定向到标准输出流,您可以像这样做
& hadoop fs -cp s3n://files /tmp > 4>&1
您可以在此处找到有关流重定向的其他信息 - https://blogs.technet.microsoft.com/heyscriptingguy/2014/03/30/understanding-streams-redirection-and-write-host-in-powershell/
答案 1 :(得分:0)
你需要像这样使用写主机-ForegroundColor
write-host "Updating the jar with application.conf"
& 7z u c:\jarname.jar c:\jarname\application.conf -ForegroundColor Yellow