2016-08-19 61 views
0

我有一個bat文件,調用廚師客戶端(以及其他東西)。當我將批處理文件的輸出重定向到一個文件時,它不會打印chef-client的輸出,但我不明白爲什麼。廚師客戶端輸出不重定向事件與重定向

例如,我只用這條線(我就簡化爲這個隔離問題,但在現實中擁有更多)TEST.BAT

call chef-client %* 

這將打印

Starting Chef Client, version 12.13.37 

其次是輸出

的其餘這樣做

test.bat > test.log 2>&1 

打印沒什麼test.log中(它創建一個空文件)

如果我連取廚師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

有沒有辦法重寫? – Jeff

+0

也許與python包裝。在這裏檢查:http://stackoverflow.com/questions/34186035/can-you-fool-isatty-and-log-stdout-and-stderr-separately/34360201#34360201(正如你看到它不是很容易) –