是否可以将日志数据回显到批处理脚本而不是文件?

时间:2017-09-11 18:57:07

标签: windows batch-file logging cmd

基本上,我想记录日志文件的抽象,而不是日志文件的具体实现

场景:我将有几个工作启动批处理脚本,每个脚本都会在白天启动一个特定的流程。 Windows任务计划程序任务将用于触发批处理文件。

问题:我不想回应任务调度程序的日志文件(通过附加>> C:\LogFolder\log.txt参数)或来自job-kickoff-batch-scripts本身(通过添加call :sub >> C:\LogFolder\log.txt)以防日志文件夹的位置发生变化。

潜在解决方案:是否可以将日志数据回显到logging.bat脚本而不是像log.txt这样的日志文件?这样,当我们更改记录内容的方式或位置时,我们只需更改logging.bat脚本文件,而不必更改每个job-kickoff-batch-scripts本身的任何代码。

job-kickoff.bat脚本的类似内容:

call :sub | logging.bat  
exit 

:sub
ECHO Some text that needs to be logged

这适用于logging.bat脚本:

ECHO %1 >> C:\LogFolder\Log.txt

由于某种原因,我无法让它工作。而且,即使它有效,我也不确定这是否是我想要的最佳方式。

1 个答案:

答案 0 :(得分:0)

不完全像你的方法(你注意到它不会起作用),但是怎么样:

#include<iostream>
using namespace std;
class A
{
 public:
    int a;
    void method()
    {
       //do something
    }
    static void (*fptr)();
};
int main()
{
    A b,c;
    if(&(b.method)==&(c.method))
    {
        cout<<"they are same\n";
    }
    else
    {
        cout<<"they are not same\n";
    }
    return 0;
}

call <be sure to give a complete absolute path>\logging.bat call :sub >> %logfile% goto :eof :sub ECHO Some text that needs to be logged 喜欢:

logging.bat