将批处理命令转换为python

2024-05-29 11:51:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图将一个.bat文件转换成python,几乎一切都正常,只是压缩部分不工作,我指出了标志和路径“rar.exe文件“,但在python版本中根本不起作用。要使“.bat”版本具有相同的行为,我需要纠正什么?在

谢谢你

蝙蝠版本.bat

@echo off

setlocal EnableDelayedExpansion
set "FolderBaseName=myFolder"

set "DropBoxFolder=D:\Tests\3.asc\MyDropBox"
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

pythonVersion.py

^{pr2}$

Tags: 文件inecho版本fortestsexedo
2条回答

您需要对正在创建的Popen对象使用^{}方法。在

blah = Popen(...)
blah.communicate()

这也将阻止,直到它完成,然后你可以启动第二个命令。在

REN *.log *.txt
MKDIR LOG


FINDSTR "TYPE:1=20000" *.txt > TYPE-1-20000
FINDSTR "TYPE:2=50000" *.txt > TYPE-2-50000
FINDSTR "TYPE:3=100000" *.txt > TYPE-3-100000
FINDSTR "TYPE:4=500000" *.txt > TYPE-4-500000
FINDSTR "OFFLINE" *.txt > OFFLINE
FINDSTR "RTRCT " *.txt > RTRCT 
FINDSTR "RJCT" *.txt > RJCT
FINDSTR "DSPNS" *.txt > DSPNS
FINDSTR "WITHDRAWAL" *.txt > WITHDRAWAL
REN *.? *.txt
MOVE "TYPE-1-20000.TXT" LOG
MOVE "TYPE-2-50000.TXT" LOG
MOVE "TYPE-3-100000.TXT" LOG
MOVE "TYPE-4-500000.TXT" LOG
MOVE      "OFFLINE.TXT" LOG
MOVE "RTRCT.TXT" LOG
MOVE "RJCT.TXT" LOG
MOVE "DSPNS.TXT" LOG
MOVE "WITHDRAWAL.TXT" LOG

相关问题 更多 >

    热门问题