我有一个bat文件,它调用chef-client(以及其他东西)。当我将批处理文件的输出重定向到文件时,它不会打印chef-client的输出,但我不明白为什么。
例如,我有test.bat只有这一行(我已将其简化为此以隔离问题,但实际上有更多)
call chef-client %*
打印
Starting Chef Client, version 12.13.37
然后是剩余的输出
这样做
test.bat > test.log 2>&1
不打印任何test.log(它创建一个空文件)
如果我甚至采用chef-client.bat的内容并直接调用它,我会看到相同的结果:
C:\opscode\chef\embedded\bin\ruby.exe C:\opscode\chef\bin\chef-client remoteapp::default > C:\test.log 2>&1
不打印任何test.log
但删除重定向打印
Starting Chef Client, version 12.13.37
正如我所料,如何重定向到文件在这里工作?
答案 0 :(得分:0)
某些程序检测到标准输入或输出已重定向到文件(不是终端)并执行其他操作(或不执行任何操作)
你偶然发现了这样一个程序。