Powershell 修改重复重命名文件的脚本
在PowerShell中使用下面的代码,我正在重命名许多图片。如何修改代码以管理重复项?注;许多照片具有相同的CreationTime值。当它们出现时,我需要将它们输出为:Powershell 修改重复重命名文件的脚本,powershell,Powershell,在PowerShell中使用下面的代码,我正在重命名许多图片。如何修改代码以管理重复项?注;许多照片具有相同的CreationTime值。当它们出现时,我需要将它们输出为: yyyyMMdd-HHmm-1 yyyyMMdd-HHmm-2 yyyyMMdd-HHmm-3 等等 脚本: Dir | Rename-Item -NewName {$_.CreationTime.toString("yyyyMMdd-HHmm") + ".jpg"} 向scriptblock添加更多内容以检查路径并循
- yyyyMMdd-HHmm-1
- yyyyMMdd-HHmm-2
- yyyyMMdd-HHmm-3
- 等等
Dir | Rename-Item -NewName {$_.CreationTime.toString("yyyyMMdd-HHmm") + ".jpg"}
向scriptblock添加更多内容以检查路径并循环,直到找到唯一的内容:
Dir | Rename-Item -NewName {
$NewName=$_.CreationTime.toString("yyyyMMdd-HHmm") + ".jpg";
$i=1
While(Test-Path ".\$NewName"){
$NewName=$_.CreationTime.toString("yyyyMMdd-HHmm") + "-$i.jpg"
$i++
}
$NewName
}
编辑:嗯,我不知道为什么它会这样做,除非你没有正确复制我的代码。我在一个测试文件夹上运行了它,结果是:
PS C:\temp\test> gci
Directory: C:\temp\test
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 10/12/2016 11:13 AM 35228885 20161012-1113.jpg
-a---- 10/12/2016 11:28 AM 31413221 20161012-1128.jpg
-a---- 10/12/2016 11:37 AM 33243498 20161012-1137.jpg
-a---- 10/12/2016 4:42 PM 2110424 20161012-1642-1.jpg
-a---- 10/12/2016 4:42 PM 3300892 20161012-1642-2.jpg
-a---- 10/12/2016 4:42 PM 3295345 20161012-1642-3.jpg
-a---- 10/12/2016 4:42 PM 101138881 20161012-1642.jpg
Edit2:Ok,修复了无法在同一日期时间管理超过10个文件的问题 尝试此操作,但使用路径目录修改路径C:\temp
$listcouple=gci -File -Path "C:\temp" | select name, fullname, @{Name="Datstring";Expression={$_.CreationTime.toString("yyyyMMdd-HHmm") }} | group Datstring
foreach ($item in $listcouple)
{
if ($item.Count -gt 1)
{
$compteur=0
foreach ($value in $item.Group)
{
$compteur++
$newname= $value.Datstring + "-" + $compteur.ToString() + ".jpg"
Rename-Item -path $value.fullname -newname $newname
}
}
else
{
$newname= $item.Group[0].Datstring + ".jpg"
Rename-Item -path $item.Group[0].fullname -newname $newname
}
}
Hi@TheMadTechnician-这导致了许多文件名,如20161010-1114-01-02-03-04-05。jpgIt看起来,当它有多个具有相同creationtime值的文件实例时,就会产生错误。这是它正在创建的文件名的图像。明白了。。。好的,这是正则表达式替换。一秒钟后,我就可以解决这个问题。仍然会出现大量错误,主要是“PathToolLongException”-下面是一个图像:如果您遇到PathToolLong错误,那么显然您需要缩短路径。这是windows的限制。我不知道你是如何得到这个结果的,这是没有意义的。我更新了答案,这样你就不会在这里结束了。