在命令提示符下运行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))
有什么想法如何做到这一点?
答
使用型调用并显示在提示
文件(纯文本)了解更多如何使用类型 - @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
的可能的复制[显示Windows命令提示输出,并将其重定向到一个文件(https://stackoverflow.com/questions/796476/displaying-windows-command-prompt-output-and-redirecting-it对一个文件) – 2017-11-18 05:37:47
你基本上想要在Unix系统上执行'TEE'命令。 Windows没有一个原生命令。如果你需要这个功能,你将不得不下载一个可在Windows上运行的第三方TEE程序。 – Squashman