重命名文件&使用{replacestr}的目录{searchstr}

时间:2010-12-08 20:08:00

标签: perl cygwin batch-processing

我有一个应用程序(Templify)创建了一个模板化的目录结构,但它似乎无法使用我已确定为目标的“__NAME__”重命名。

如果我能找到一种简洁的方法来重命名所有文件,那么这很好。我的替换文本的目录。

我找到了一个重命名文件的rename.pl方法,我找到了一些删除文件名中下划线的代码并用空格替换它......但是当我修改代码以放入我的搜索条件时,它似乎永远不会工作

所以,基本上,我需要用“Project-Name”替换“__NAME__”。

我很乐意为每个未来的重用修改搜索字符串,但我想知道如何创建一个我可以传递ARGS的文件。

我在XP上并且可以使用cygwin(cygwin似乎没有'重命名',这使得使用名为'rename'的函数很难找到linux类型的解决方案....)

我确实找到了this,这对于当前目录中的文件很容易使用,但我不知道它是否可以告诉它进入子目录。

任何帮助都会很棒。

谢谢, 斯科特

1 个答案:

答案 0 :(得分:0)

来自cygwin:

find /cygdrive/c/mytree -type f | perl -ne 'rename $_, $1/Project-Name if m[^(.*)/__NAME__$]'

或者使用python:

import os

for root, dirs, files in os.walk("C:\\mytree"):
    for filename in files:
        if filename == "__NAME__":
            os.rename(os.path.join(root, filename), os.path.join(root, "Project-Name"))