2010-11-03 226 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