簡體   English   中英

如何使用Python在DOSbox中運行.bat文件?

[英]How to run a .bat file in DOSbox with Python?

我需要使用DOSbox模擬器來運行.bat文件

但是我不知道如何在python中實現我必須遵循的所有步驟。 這是我的嘗試:

import os
commands = ['""C:\Program Files (x86)\DOSBox-0.73\dosbox.exe""',
            'mount c c:\Users\g\Desktop',
            'C:',
            'run_t2d.bat']

for i in commands:
    os.system(i)

對於第一個元素,它運行DOSbox控制台,但是隨后它不識別其他2個命令。

'mount' is not recognized as an internal or external command,
operable program or batch file.
'run_t2d.bat' is not recognized as an internal or external command,
operable program or batch file.

可能與不同的子流程有關。 當然,如果我自己運行控制台並鍵入完全相同的命令

您實際上甚至不需要Python。 您需要運行Dosbox並在自動執行部分中使用所需命令傳入-conf參數,該參數指向配置文件。

因此,如果您在與批處理文件相同的目錄中創建一個名為run_t2d.conf之類的配置文件,如下所示:

[autoexec]
mount c c:\Users\g\Desktop
C:
run_t2d.bat

然后,當您啟動dosbox時:

C:\\Program Files (x86)\\DOSBox-0.73\\dosbox.exe -conf C:\\Users\\G\\Desktop\\run_t2d.conf

當然,您可以根據需要在python腳本中調用它。

您可以使用DOSBox-c選項來指定要作為參數運行的命令,而不必創建配置文件。 例如:

import subprocess

dosbox_exe = r'C:\Program Files (x86)\DOSBox-0.73\dosbox.exe'
dosbox_args = [r'mount c c:\Users\g\Desktop',
           'C:',
           'run_t2d.bat']

def run_dosbox(args):
    return subprocess.call(reduce(lambda x, y: x + ["-c"] + [y],
                                  args, [dosbox_exe]))

run_dosbox(dosbox_args)

我用subprocess.call ,而不是os.system ,因為它會自動處理報價所必需的參數那里。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM