diff --git a/src/framework/core.c b/src/framework/core.c index 16ad6fb..59d7905 100644 --- a/src/framework/core.c +++ b/src/framework/core.c @@ -1149,12 +1149,12 @@ chsrc_view_env (const char *var1, ...) #else if (first) { - cmd = xy_strjoin (3, "echo $", var, " "); + cmd = xy_strjoin (5, "echo ", var, "=$", var, " "); first = false; } else { - cmd = xy_strjoin (4, cmd, "; echo $", var, " "); + cmd = xy_strjoin (6, cmd, "; echo ", var, "=$", var, " "); } #endif var = va_arg (vars, const char *); @@ -1164,7 +1164,13 @@ chsrc_view_env (const char *var1, ...) if (var1) { - chsrc_run (cmd, RunOpt_Dont_Notify_On_Success|RunOpt_No_Last_New_Line); + /** + * 不用 chsrc_run(),因为在Windows上,set在遇到环境变量未定义时会返回非0,导致 chsrc_run() 报告运行失败 + * 这个错误过于醒目。我们应该像在 sh 一样,默默地没有输出即可,而不是报错 + */ + // chsrc_run (cmd, RunOpt_Dont_Notify_On_Success|RunOpt_No_Last_New_Line|RunOpt_Dont_Abort_On_Failure); + int status = system (cmd); + if (status!=0) {/* NOOP */} } else {