2016-01-24 44 views
-3

在一個文件夾中,我有200個名爲D_1,D_2,...,D_200的文件夾。
我有一個包含了新的名字,我想對這些文件夾的文本文件:(我得從EXCELL表格的列這個名單)
名1
名稱2
...
Name200

所以我想要對這些名稱進行更改:D_1 - >名稱1,...,D_200 - > Name200。
我在Windows 8.1(不是專業版)上安裝了Powershell。
如何使用Powershell或常規的Windows命令行來重命名?使用文本列表中給出的名稱重命名文件夾

+0

你可以使用'Rename-Item' –

+0

如何?原始名稱是常規的:D_1到D_200。但新名稱不是,例如它們是由列表給出的:xyut,azdgkj,...,jtyu(我稱之爲Name1實際上是xyut,而Name200是jtyu) – 8139david

回答

1

所有你需要做的是從排序到D_1D_200原始文件夾,在它們之間迭代的循環,並從該文件與Rename-Item它們重命名爲相應的名字:

# Read new names from file 
$newNames = Get-Content .\file\with\new\names.txt 

# Retrieve existing folders and sort by the number in their name 
$oldFolders = Get-ChildItem C:\path\to\folders\ -Filter 'D_*' -Directory | Sort {$_.Name.Split('_')[1] -as [int]} 

for($i = 0; $i -lt $oldFolders.Count; $i++) 
{ 
    # Rename each folder 
    Rename-Item $oldFolders[$i].FullName -NewName $newNames[$i] 
} 
0

謝謝!
馬蒂亞斯的答案似乎很棒。

我找到了另一種方法。
創建與舊名稱和新名稱的CSV文件:
舊的,新
D_1,xuty
...
D_200,dvodjvov
後來我複製的外殼粘貼此命令:



    $csv = Import-Csv old_new.csv 
    foreach ($line in $csv) { 
    Rename-Item $line.old $line.new 
    } 

它工作(5個文件夾)。
唯一的缺點是我必須填寫我csv左欄中的舊名稱。

相關問題