2010-11-03 180 views
0

首先不确定这是否是这样的问题的正确位置,但在这里。Windows重命名子文件夹命令

parentfolder /文件夹1/2010年10月31日/ file1.pdf

 /folder2/10-31-2010/filey.pdf 
     /folder3/10-31-2010/filex.pdf 
     /foldern/10-31-2010/filen.pdf 

我需要的日期重命名为2010-10-31的文件夹结构。

这是一次只会发生在每一个父文件夹中的事情。但远远超过10000个文件夹来应用它。

从谷歌搜索我看到有很多文件重命名工具,但我不允许在服务器上安装任何软件,也不允许将文件夹从服务器上移开。

任何帮助,将不胜感激。

+0

我没有看到任何C#/ Java标记;你想通过批处理文件做到这一点? – 2010-11-03 07:53:23

+0

@KMan,正确。如果可能的话。 – Kamal 2010-11-03 10:00:11

回答

0

如果您想从.bat文件中执行此操作,可以使用DOS ren命令。

ren C:\folder2\10-31-2010 C:\folder2\2010-10-31 

This answer有一个脚本可以帮助你。

+0

我在你引用的文章中试过Razor 2.3的解决方案。由于参数。无论如何,我创建了bat文件并将它放在我的父文件夹中,并用“2010-10-31”代替“10-31-2010”。我收到一个错误,指出该文件由于被另一个进程使用而无法移动。但是这些文件和文件夹没有在任何地方打开。 – Kamal 2010-11-03 11:28:08

+0

你是否能够使用命令行'ren'ame相同? – 2010-11-04 06:32:44

+0

刚试过C:\ Test> ren c:\ Test \ A0002843 c:\ Test \ test并且出现语法错误 – Kamal 2010-11-04 07:38:33

0

最好的办法是使用shell脚本。

!/bin/bash 
FOLDER=/path/to/*/ 
FILES=$(find $FOLDER -name '*-*-*') 
for f in $FILES 
do 
    o=${f%/*} 
    p=${f##*/} 
    mv $f $o/$(echo $p | awk -F"-" '{ print $3"-"$1"-"$2 }') 
done 

这仍然使用mv和awk,希望你的服务器都有它。

+0

不,它不。它是一个Windows 2003服务器。我没有权利安装任何东西。 – Kamal 2010-11-03 09:59:51

+0

Ooops我倾向于读取/路径作为UNIX路径。 – itsnotvalid 2010-11-03 10:19:19

+0

完成思维融化时刻,因为我打字。 – Kamal 2010-11-03 10:46:30