【问题标题】:How to redirect output of Windows batch scripts inside a Chef Coobkook into a file?如何将 Chef Coobkook 内的 Windows 批处理脚本的输出重定向到文件中?
【发布时间】:2014-01-08 00:37:29
【问题描述】:

例如在这个简单的食谱食谱中:

batch "Clear_OS_Agent" do
    code <<-EOH

@echo on
dir C:\
@echo off

    EOH

    action :run

当我在 Windows 节点上运行chef-client.bat 时,我可以得到dir C:\ 的结果

但是当我重定向到文件chef-client.bat &gt; C:\chef_log.txt 时,那里只有一般的chef-client.bat输出,没有dir C:\的结果。

【问题讨论】:

    标签: windows batch-file chef-infra cookbook


    【解决方案1】:

    在你的食谱中进行重定向,而不是在你运行 chef-client 时:

    code <<-EOH
    
    @echo on
    dir C:\ > C:\chef_log.txt
    @echo off
    
    EOH
    

    如果您启动调试,您可能会看到您最初的运行结果,例如:

    chef-client.bat -l debug > C:\chef_log.txt
    

    编辑:

    如果您希望将多个命令重定向到同一个日志文件,您可以执行以下操作,这样您就不必显式地重定向每一行:

    (
     echo one
     echo two
     echo three
     dir C:\
    ) > C:\test.txt
    

    【讨论】:

    • 我试过这个。它不包括调试日志中的批处理脚本输出。而且实际的脚本会很长,所以不方便显式地重定向每个命令行。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多