2011-11-30 68 views
0

我们在我们的应用程序(在Windows上运行)中收到了一个输入文件列表。这些文件通过脚本自动从数据库中提取。重命名包含'©'字符的文件

显然,某些名称包含特殊字符(如重音符号),并且这些字符在我们身边呈现为“©”。

如何以编程方式重命名这些文本文件(大约900'000)以摆脱此角色? 我们不能更改源文件,也不能重新提取文件。 问题是,由于这个角色,我们的系统涉及的另一个程序不接受这些文件。

+0

它是否必须编程?市场上有许多可批量重命名的工具:http://www.techsupportalert.com/Quick_Selection_Guide –

+0

它也不能以编程方式,但我必须删除特殊字符从一次所有的文件。大约有5个不同的文件夹。但是,如果该应用程序可以递归运行,那么看起来非常有趣! – Francesco

回答

0

我最终创建了一个新脚本来读取输入文件并在其标题中搜索特殊字符。

这是很容易的确:

string filename = filename.Replace("©", "e"); 

因为“©”是文件名,脚本(在C#)能够识别它,并相应地更换比赛。通过这种方式,我可以遍历所有文件夹和子文件夹,只需读取文件名并更改特殊字符即可。

谢谢大家的贡献!

0

看看unix命令rename。它允许您将perl正则表达式应用于一堆文件的名称。在这种情况下,你可能想是这样的:

$ rename 's/[^a-zA-Z0-9]//' * 

在Debian rename命令是perl包的一部分。它也应该在CPAN上可用。

+0

“在窗户上运行” –

+0

愚蠢的我......那么,重命名可能是一些Windows Perl分配的一部分:) – opqdonut

相关问题