Как передать параметр PATH из скрипта в командный файл? - PullRequest
1 голос
/ 02 ноября 2019

У меня есть скрипт Python, над которым я работал, и я не могу решить эту проблему при вызове командного файла из отдельного каталога, вот мой скрипт для справки

def makeFolder(folderName=""):
    try:
        os.mkdir(path + "/" + folderName)
    except OSError:
        print("Error creating folder.")


def p(string=""):
    os.system('cls')
    print(string)


path = os.getcwd().replace("/python", "")
name = input("What would you like the client to be called? ") + " 1.8.8"
mcp = "http://www.modcoderpack.com/files/mcp918.zip"
optifine = "http://download2265.mediafire.com/bdd5w08f1zcg/e878f5djmyuvnxm/Optifine.zip"
updatedDecompileFile = "https://pastebin.com/raw/Mwt03EEs"


def setup():
    makeFolder(name)

    p("Created folder '%s'." % name)

    zipPath = name + "/src.zip"

    p("Downloading MCP 1.8.8 from %s" % mcp)
    urllib.request.urlretrieve(mcp, zipPath)
    p("Finished Downloading MCP 1.8.8")

    p("Unzipping MCP 1.8.8")
    with zipfile.ZipFile(zipPath, 'r') as zip_ref:
        zip_ref.extractall(path + "/" + name)
    os.remove(zipPath)
    p("Unzipped MCP 1.8.8")

    mcpPath = path + "/" + name + "/"

    for file_name in listdir(mcpPath):
        if file_name.endswith(('.bat', '.sh')):
            os.remove(mcpPath + file_name)

    os.remove(mcpPath + "CHANGELOG")
    os.remove(mcpPath + "LICENSE.txt")

    urllib.request.urlretrieve(updatedDecompileFile, name + "/decompile.bat")

... this is where I would need to run the batch file ...

setup()

В настоящее время у меня естьПользователь заходит в указанный каталог и запускает внутри него пакетный файл из-за проблемы, когда при запуске пакетного файла появляется сообщение о том, что он не может найти путь. Вот командный файл для справки:

@echo off
runtime\bin\python\python_mcp runtime\decompile.py
pause

Файл Python, который вызывает этот пакетный скрипт, требует, чтобы путь был syspath\project\Client.

Однако при программном вызове пакетного файла из сценария Pythonрасположенный в каталоге syspath\project выдает ошибку. Однако при ручном выполнении файла, расположенного в syspath\project\Client, он работает отлично, как и предполагалось.

Я полагал, что ответ будет лежать в параметре пути, переданном из показанного выше пакетного файла в скрипт Python, который он выполняет. Так как я был новичком в Python, моя единственная работа, о которой я мог подумать, это «подделать» путь, чтобы он сообщал файлу Python, что он был выполнен в syspath\project\Client, а не syspath\project.

Если вам нужна дополнительная информация, пожалуйста, дайте мне знать, не делая мой пост слишком длинным, я попытался объяснить свой вопрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...