2017-11-18 104 views
0

我由含在命令提示符下運行Python和記錄到文件

@echo off 
set log=mainLog.txt 
cd /d F:/Project/Python 
echo [%TIME%]starting main.py >%log% 
python main.py >> %log% 

這個簡單.bat批處理文件中的命令提示符下成功重定向main.py輸出到日誌文件,但不顯示它的提示屏幕。所以我將其更改爲:

python main.py 2>> %log% 

這將顯示的main.py輸出到屏幕上的提示而不是重定向到日誌文件。我已經嘗試使用:

python main.py 2>> %log% 1>> %log% 

但是這給我:

該進程無法訪問該文件,因爲它正在使用由另一個 過程

讓我們假設我的main.py包含:

for i in range(10): 
    print("this is line no. {}".format(i)) 

有什麼想法如何做到這一點?

+2

的可能的複製[顯示Windows命令提示輸出,並將其重定向到一個文件(https://stackoverflow.com/questions/796476/displaying-windows-command-prompt-output-and-redirecting-it對一個文件) – 2017-11-18 05:37:47

+0

你基本上想要在Unix系統上執行'TEE'命令。 Windows沒有一個原生命令。如果你需要這個功能,你將不得不下載一個可在Windows上運行的第三方TEE程序。 – Squashman

回答

1

使用調用並顯示在提示

文件(純文本)瞭解更多如何使用類型 - @SS64 - Type Command

(例如)

此腳本輸出到一個日誌,但你需要調用輸出日誌中提示上顯示。

@echo off 
::script file path - x:\myproject\xyz.py 
::script filename if batch runs in same directory - xyz.py 
set myscrpt="xyz.py" 

::Log file path 
set pylog="myscriptlog.log" 

::Python Path 
pushd C:\Python27 

::script output to log 
echo ----------log-start---------- >%pylog% 
%myscrpt% >>%pylog% 
echo ----------log-end---------- >>%pylog% 
cls 

::Display log output in prompt 
type %pylog% 
pause>nul 
exit 
相關問題