【问题标题】:Is it possible to echo log data to a batch script instead of a file?是否可以将日志数据回显到批处理脚本而不是文件?
【发布时间】:2017-09-11 18:57:06
【问题描述】:

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

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

问题:我不想从任务调度程序(通过附加 >> C:\LogFolder\log.txt 参数)或作业启动批处理脚本本身(通过添加 @ 987654322@) 以防日志文件夹的位置发生更改。

可能的解决方案:是否可以将日志数据回显到 logging.bat 脚本而不是像 log.txt 这样的日志文件?这样,当我们更改记录内容的方式或位置时,我们只需更改logging.bat 脚本文件,而不必更改每个作业启动批处理脚本本身中的任何代码。

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

由于某种原因,我无法让它工作。此外,即使它有效,我也不确定这是否是做我想做的最好的方式。

【问题讨论】:

    标签: windows batch-file logging cmd


    【解决方案1】:

    与您的方法不完全一样(正如您所注意到的那样,这行不通),但是如何:

    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 喜欢:

    @set "logfile=C:\LogFolder\Log.txt"
    

    【讨论】:

      猜你喜欢
      • 2014-08-22
      • 1970-01-01
      • 1970-01-01
      • 2014-08-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多