使用 python 更改 .bat 文件

Posted

技术标签:

【中文标题】使用 python 更改 .bat 文件【英文标题】:Make changes to a .bat file using python 【发布时间】:2021-06-01 19:36:27 【问题描述】:

我想用python修改一个bat文件并保存,以便以后调用。

例如, 我读过.bat。它包含一个文件夹的地址。

我运行它。

那我改一下地址。

然后我再次运行它。

如何使用 python 做到这一点。到目前为止,我只能创建新的 bat 文件,但我无法编辑现有的并保存它。

【问题讨论】:

将文件内容读入str的一个list,每个str为一行。对线条进行您希望的更改。然后将这些行写入文件。你不能在文件中间插入东西,你必须重写整个东西。 啊。好的。如果我重写整个东西并以相同的名称保存,则文件会被重写吗?还是会是一个不同名称的新文件? 如果您一遍又一遍地更改批处理文件中的相同字符串,那么将该字符串设为反映输入参数的变量不是更有意义吗?并在运行时将该输入作为类型化参数提供?通过批处理文件本身的输入请求?还是从文件中读取的每一行?等等 【参考方案1】:

如果您只想编辑 .bat 文件中的一行,可以试试这个:

with open("path/to/file.bat", "rt") as bat_file:
    text = bat_file.readlines()

new_text = []
for line in text:
    if "address/you/want/to/change" in line:
        new_text.append(line.replace("address/you/want/to/change", "new/address/line"))
    else:
        new_text.append(line)

with open("path/to/file.bat", "wt") as bat_file:
    for line in new_text:
        bat_file.write(line)

它所做的是读取当前.bat 文件的所有行,然后遍历这些行并将您想要更改的行更改为您想要更改的任何内容。

之后,文件以写入模式再次打开,因此所有行都可以写入.bat 文件(更新文本)。

【讨论】:

以上是关于使用 python 更改 .bat 文件的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 BAT 文件更改目录?

尝试编写脚本以使用 .bat 更改文件名的结尾

如何使用BAT文件更改目录

python文件打包为bat用以分享

如何安排不使用Windows任务计划程序运行bat文件?

使用bat(批处理文件类型)两步更改笔记本IP