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



>问题:我想遍历文件夹以搜索某些文件类型,然后使用程序和name.ext作为参数执行它,然后运行更改第一个程序输出名称的python脚本。

我知道可能有更好的方法来完成上述操作,但我想到的方式是这样的:

[蝙蝠]

for /R "C:..folder" %%a IN (*.extension) do ( SET name=%%a "C:...first_program.exe" "%%a" "C:...script.py" "%name%" )

[皮]

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 文件更改名称,但在将其放入控制台后,它似乎保留在脚本中。BAT不会改变它,这让我很困扰。

附言。如果有更好的方法,我会很高兴了解它。

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

#! /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(,输出被放入一个原始文件中。最终,这可以通过在此处更改第 5 行awk来处理。如上所述,输出放置在唯一文件中。

最新更新