使用Python打开.bat文件 - 无法正常工作

时间:2015-06-22 18:10:28

标签: python batch-file

我有3个不同的文件,一个Python文件和两个.bat文件。他们彼此沟通(希望如此)。

当我执行" Process_Videos.bat"单独(在Windows资源管理器中双击)它工作正常,但每当我从Python文件中调用它时它根本不工作,只是说"按任意按钮继续......"

我真的需要这个结构,调用" Process_Videos.bat"从Python文件,因为我提取一些Web信息。 " pythonExecute.bat"只是作为整个过程的触发器。

我也尝试过"子过程"方法,但也没有工作。

文件和相应的代码:

pythonExecute.bat

python "D:\\tests\\pythonCall.py"

pythonCall.py

import os
os.system('D:\\tests\\3.asc\\Process_Videos_asc.bat')

Process_Videos.bat

@echo off

setlocal EnableDelayedExpansion
set "FolderBaseName=TestName"
set "DropBoxFolder=D:\tests\3.asc\myDropBoxFolder"
set "BaseOutputFolder=D:\tests\3.asc\TEMP"

for %%I in (*.png) do (

    set "slaveName=%%~nI"
    set "slaveName=!slaveName:~6!
    set "OutputFolder=%BaseOutputFolder%_!slaveName!"
    echo !slaveName!   
    md "!OutputFolder!" 2>nul

    for %%J in (*.mp4*) do (

        ffmpeg -i "%%~fJ" -i "%%~fI" -filter_complex overlay "!OutputFolder!\%%~nJ.mp4"

    )

    "C:\Program Files\WinRAR\rar.exe" a -cfg- -ep1 -inul -m5 "%DropBoxFolder%\%FolderBaseName%_!slaveName!" "!slaveName:~6!\*"

    rd /S /Q "!OutputFolder!"

)

pause

1 个答案:

答案 0 :(得分:2)

你需要:

a)在其所在的目录中调用批处理文件(例如,首先更改目录),然后

b)摆脱批处理文件末尾的暂停。

您还应该考虑完全替换批处理文件 - python可以完成它所做的所有事情。 对this SO问题的接受答案提供了一些非常好的提示。