美好的一天,
我正在尝试根据文本文件中的匹配/查找重命名/组织文件。
我在这样的文件夹中有几百个西里尔(俄语)命名的媒体文件:
*请注意,有些文件有空格
具有所需名称的文本文件如下所示:
它看起来那样(用|作为分隔符)是因为我尝试使用“Bulk Renaming Utility”使用管道|作为“重命名对”功能的分隔符。基本上,管道右边的文件名|是最终产品。不幸的是,该功能不适用于西里尔语(俄语)或其他非标准字符。
我发现PowerShell脚本HERE似乎几乎是我需要的,除了在重命名之前它与文件名不匹配。 同样,我发现这个Python脚本HERE可以满足我的需求,但它适用于Ubuntu。不幸的是,我在Windows7上并不确定它是否适用于我。
有什么建议吗?
非常感谢你的时间!
答案 0 :(得分:0)
您可以将文本文件读入哈希表,其中键是旧名称(|
左侧的值),值为新名称:
$RenameTable = @{}
Get-Content textfile.txt |ForEach-Object {
$OldName,$NewName = $_.Split('|')
$RenameTable[$OldName] = $NewName
}
然后根据哈希表中的内容重命名文件:
Get-ChildItem .\folder\with\avi\files |Rename-Item -NewName {
if($RenameTable.ContainsKey($_.Name)){
$RenameTable[$_.Name]
} else {
$_.Name
}
}