繁体   English   中英

通过批处理文件运行时,如何将 python 脚本的 output 打印到 Windows 控制台?

[英]How to print output of python script to Windows console, when running via batch file?


我一直在向后和向前寻找答案,但无济于事。 我在 Windows 上工作,并在 Python 中编写了一个脚本,它将源文件复制到其他备份目的地(Dropbox 文件夹和远程驱动器)。

import os, shutil

source = r'C:\****\****\Accounts_Passes.kdbx'
file_name = source.split('\\')[-1]
cloud_backup = r'C:\****\Dropbox\Backup'
pendrive_backup = r'I:'

def backup (source, destination):
    if not os.path.exists(destination):
        os.mkdir(destination)
    shutil.copy(source, destination)



if __name__ == '__main__':
    if os.path.exists(pendrive_backup.split('\\')[0]):
        backup(source, pendrive_backup)
        print(f"{file_name} file backed up to pendrive!")
    else:
        print(f"Pendrive disconnected, couldn't backup {file_name} to it")
    backup(source, cloud_backup)
    print(f"{file_name} file backed up to Dropbox!")
    print("DONE!")

我希望它通过 Windows 任务计划程序运行它,所以我创建了一个 .bat 文件。

echo off
echo Backup launched
timeout /t 5
start "C:\Program Files\Python38\python.exe" "C:\*****\Backup Scripts\Keypass_backup.py"
pause

问题是当我通过.bat 文件运行它时,Python 脚本的 output 没有在控制台中显示,这是我强烈要求的。 关于如何通过批处理文件打开命令行、显示 Python 脚本的打印输出的任何建议都会很棒。

谢谢,
麦克风

我的建议是您更正批处理文件的内容。

您应该从您提供的内容的第4start删除。

@Echo Backup launched
@%__AppDir__%timeout.exe /T 5 /NoBreak
@"%ProgramFiles%\Python38\python.exe" "C:\*****\Backup Scripts\Keypass_backup.py".
@Pause

如果您想忽略该建议并使用start ,那么正确的语法是:

@Start "" "%ProgramFiles%\Python38\python.exe" "C:\*****\Backup Scripts\Keypass_backup.py".

如果没有该语法,您的start命令实际上是使用C:\Program Files\Python38\python.exe作为“窗口标题”,并运行命令"C:\*****\Backup Scripts\Keypass_backup.py" ,这不是你想要的。

如果您打开命令提示符 window,请键入start /? help start ,然后按ENTER ,您应该会看到第一组双引号用于定义标题。

此外,您应该能够通过任务调度程序运行"C:\Program Files\Python38\python.exe" ,使用"C:\*****\Backup Scripts\Keypass_backup.py"作为参数,没有根本需要一个 你甚至可以通过任务调度程序运行cmd.exe来做到这一点,使用/K"C:\Program Files\Python38\python.exe""C:\*****\Backup Scripts\Keypass_backup.py"也是它的 arguments。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM