【发布时间】:2015-08-31 11:25:48
【问题描述】:
我目前正在 Windows 7 中运行此脚本。
所以,我有一个程序,用于对另一个命令 (mkmk) 的输出进行颜色编码,并统计不同数量的错误和其他值得注意的统计数据等。所以现在,它以批处理文件的形式开始
- 关闭回声
- 为变量设置一些颜色值
- 同时调用 mkmk 命令和 awk 脚本
awk 脚本然后逐行解析,并调用一个函数,然后调用一个执行着色的 exe。工作方式如下:
/: error/ {
CntError++ ;
TraError[CntError] = $0;
colorf(cErrorDcb,$0) ;
next
}
function colorf(fg, str ) {
if ( Couleur < 1 )
{
printf("%s\n",str);
}
else
{
if ( System == "UNIX" )
{
printf("%s%s%s%s\n",fg,bg,str,NORMAL);
}
else
{
system("Colorize.exe /c:" fg " \"" str "\"");
printf("\n");
}
}
}
所以,一切正常,除了每次调用 system("Colorize.exe") (很多)时,命令都会在终端中输出并弄乱输出。它似乎不受我的批处理文件中的 @echo off 命令的影响,因为它是在 awk 脚本中调用的。有没有办法只隐藏这些系统命令,但保留我的 awk 输出的其余部分?
【问题讨论】:
-
您是否尝试将
@echo off添加到system()调用中? -
我尝试在字符串的开头和结尾添加@echo off,但到目前为止它对我不起作用。我已修改问题以表明我在 Windows 7 上运行它。