>问题:我想遍历文件夹以搜索某些文件类型,然后使用程序和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
来处理。如上所述,输出放置在唯一文件中。