在命令提示符上运行Python并记录到文件

时间:2017-11-18 05:33:32

标签: python windows batch-file io-redirection

我制作了这个包含

的简单.bat批处理文件
@echo off
set log=mainLog.txt
cd /d F:/Project/Python
echo [%TIME%]starting main.py >%log%
python main.py >> %log%

命令提示符成功将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))

有什么想法可以做到吗?

1 个答案:

答案 0 :(得分: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