【问题标题】:setting batch variables using python使用python设置批处理变量
【发布时间】:2014-03-21 18:21:43
【问题描述】:

Python 似乎正在处理我的尝试:

subprocess.call(['set' , 'logfile=cat'], shell=True)

它不返回任何错误。但是,当我尝试使用日志文件作为变量或执行%logfile% 时,它似乎没有将logfile 设置为任何内容。如何从 python 脚本中生成批处理变量?

我试图做的是:我有一个批处理脚本,可以顺序运行几个 python 脚本。我想在我的一个 python 脚本中设置一个变量,该变量将在我的批处理脚本中持续存在。

【问题讨论】:

    标签: python variables batch-file set


    【解决方案1】:

    您的变量已设置,但一旦call 返回,shell 实例就会结束并且变量会消失。

    您到底想完成什么?这听起来像XY problem.

    【讨论】:

    • 哦,我明白了。我有一个批处理脚本,可以顺序运行几个 python 脚本。我想从我的一个 python 脚本中设置一个变量,该变量将在我的批处理脚本中持续存在。
    • @user3447675 你也许可以使用环境变量来做到这一点,但我还不确定。
    • 环境变量在这里没有帮助。子进程继承父进程的环境,但在子进程中对环境所做的更改不会反映在父进程的环境中。
    • @Alp 我实际上并不知道由批处理文件启动的 python 脚本影响批处理文件其余部分的好方法。我正在将我的答案转向社区 wiki——如果你有一个好的解决方案,请编辑并发布它!
    • @adsmith 如果子进程可以单方面改变父进程的执行,这将是一个安全漏洞。您必须合作地做这样的事情:孩子可以将所需的更改传达给父母,然后父母可以在认为合适的情况下进行更改。
    猜你喜欢
    • 1970-01-01
    • 2021-04-17
    • 1970-01-01
    • 1970-01-01
    • 2014-03-03
    • 1970-01-01
    • 2017-06-11
    • 2011-12-09
    相关资源
    最近更新 更多