【问题标题】:How to rename multiple files at once and replace specific characters without affecting other characters如何一次重命名多个文件并替换特定字符而不影响其他字符
【发布时间】:2019-09-25 20:02:22
【问题描述】:

我想替换这 98 个文件的前两个数字,看起来像这样

10 10HZ.mp3
11 11HZ.mp3
12 12HZ.mp3

用“Bass Mekanik -”让它看起来像这样

Bass Mekanik - 10HZ.mp3
Bass Mekanik - 11HZ.mp3
Bass Mekanik - 12HZ.mp3

我在 CMD 上尝试了很多不同的组合,像这样

*重命名“?? ????.mp3”“Bass Mekanik - ??.mp3”

但是没有任何效果。我想保留每个文件的最后 4 个字符。

另外,在不久的将来,我需要在每个文件(不是在这些文件上,在其他有很多其他字符的文件上)前面添加“Bass Mekanik -”,而不需要更改任何其他内容。到目前为止,我学会了如何使用删除前 2 个字符

*重命名 "?? ????.mp3" "// ????.mp3"

然后我尝试添加“Bass Mekanik”,但它给出了错误“存在重复的文件名,或者文件 找不到。” 我希望这是可能的......

【问题讨论】:

  • [1] 将 .Extension 保存到 $Ext [2] 将 .BaseName 保存到 $BaseName [3] 修剪掉 $BaseName 中不需要的部分 [4] 将新部分添加到剩余的$BaseName [5] 添加$BaseName$Ext 以制作$NewFileName [6] 使用它来重命名文件。 [咧嘴]

标签: powershell file-rename


【解决方案1】:

这应该可以满足您的需要,如果您对结果感到满意,请删除 WhatIf

保留文件名的最后 4 个(8 个带有“.mp3”)字符和前缀为“Bass Mekanik”

Get-ChildItem | % { $_.FullName -match ".{8}(?<=\.mp3$)" | Out-Null ; Rename-Item -LiteralPath $_.FullName -NewName ( "Bass Mekanik " + $Matches.Values ) -WhatIf }

在当前文件名前加上“Bass Mekanik”

Get-ChildItem | % { Rename-Item -LiteralPath $_.FullName -NewName ("Bass Mekanik" + $_.Name ) -WhatIf }

【讨论】:

  • 是的!第一个有效!非常感谢您的参与!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-05-27
  • 2019-08-07
  • 2020-04-01
  • 1970-01-01
  • 2017-02-19
  • 1970-01-01
  • 2018-11-21
相关资源
最近更新 更多