2016-01-24 92 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左栏中的旧名称。