【发布时间】:2021-01-14 14:58:57
【问题描述】:
所以我有一个包含两列 OrigFilename|NewFilename 的 csv 文件,并且我有一个包含超过 1k 个文件的目录。问题是,我的列表没有文件扩展名。我将如何在不明确定义文件扩展名的情况下将文件重命名为新文件名,而只使用原始文件名中的扩展名?
这是我所拥有的,但它需要文件扩展名。我在制定哈希表以获取扩展名时遇到问题。
$Renames = Import-csv "C:\Users\admin\Desktop\pull\rename.csv" $TargetDir = "C:\Users\admin\Desktop\pull" $RenHash = @{} $Renames | ForEach-Object { $RenHash[$.OName]=$.NName } Get-ChildItem -Path $TargetDir -Recurse -Include $Renames.OName |重命名项目 -NewName {$RenHash[$_.Name]}
【问题讨论】:
-
你有什么工具?假设您在 Windows 上,您可以编写 PowerShell 吗?你知道什么编程语言?
-
这是我所拥有的,但它迫使我定义文件分机。 $Renames = Import-csv "C:\Users\admin\Desktop\pull\rename.csv" $TargetDir = "C:\Users\admin\Desktop\pull" $RenHash = @{} $Renames | ForEach-Object { $RenHash[$_.OName]=$_.NName } Get-ChildItem -Path $TargetDir -Recurse -Include $Renames.OName |重命名项目 -NewName {$RenHash[$_.Name]}
-
对不起,我问的是你作为程序员的能力。如果您了解 PowerShell(并且在 Windows 计算机上),我们可以在 PowerShell 中给出答案。如果没有,但你懂 C#,我们可以用 C# 等回答。
-
我的错,windows 和 PS 都很棒!
-
非常感谢任何帮助。
标签: rename