首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在.py中运行带有参数和参数的.bat文件

问在.py中运行带有参数和参数的.bat文件
EN

Stack Overflow用户
提问于 2018-09-27 09:05:15
回答 1查看 63关注 0票数 0

问题:我想在文件夹上迭代以搜索特定的文件类型,然后使用一个程序和name.ext作为参数来执行它,然后运行python来更改第一个程序的输出名称。

我知道有更好的方法来做以上的事情,但我想到的方法是:

蝙蝠

代码语言:javascript
复制
for /R "C:\..\folder" %%a IN (*.extension) do ( SET name=%%a "C:\...\first_program.exe" "%%a" "C:\...\script.py" "%name%" )

PY

代码语言:javascript
复制
import io
import sys
def rename(i):
    name = i
    with open('my_file.txt', 'r') as file:
        data = file.readlines()
    data[40] ='"C:\\\\Users\\\\UserName\\\\Desktop\\\\folder\\\\folder\\\\' + name  + '"\n'
    with open('my_file.txt', 'w') as file:
        file.writelines( data )

if __name__ == "__main__":
    rename(sys.argv[1])

预期的结果:--我希望python文件更改名称--但是在将其放入控制台后,它似乎与脚本保持在一起。蝙蝠并没有改变它,它困扰着我。

PS。如果有更好的办法,我会很高兴知道的。

EN

回答 1

Stack Overflow用户

发布于 2018-09-27 12:40:47

这是linux bash版本,我相信您可以更改循环等以使其作为批处理文件工作,而不是您的*.exe,我使用cat作为一般输入输出示例。

代码语言:javascript
复制
#! /bin/sh
for f in *.txt
do
    suffix=".txt"
    name=${f%$suffix}
    cat $f > tmp.dat
    awk -v myName=$f  '{if(NR==5)  print $0 myName; else print $0 }' tmp.dat > $name.dat
done

这将产生以输入*.dat文件命名的“唯一”输出*.txt文件。这些文件由cat (实际上是您的*.exe)处理,输出被放入一个临时文件中。最后,这将由awk在这里更改第5行来处理。将输出放置在唯一文件中,如上文所述。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52533308

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档