在命令提示符下运行Python和记录到文件

在命令提示符下运行Python和记录到文件

问题描述:

我由含在命令提示符下运行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

使用调用并显示在提示

文件(纯文本)了解更多如何使用类型 - @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