powershell - 如何一次重命名多个文件并替换特定字符而不影响其他字符
问题描述
我想替换这 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”,但它给出了一个错误“存在重复的文件名,或者找不到文件。” 我希望这是可能的......
解决方案
这应该可以满足您的需要,如果您对结果感到满意,请删除 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 }
推荐阅读
- typescript - 扩展两个接口中的任何一个并添加一些属性的接口?
- excel - Excel VBA。什么时候需要激活工作表?
- php - 使用单选按钮返回布尔值 true 还是 false?
- javascript - 在 PhantomJS 中使用类名创建嵌套元素
- php - 如何在php中获取搜索结果
- php - 使用 PHP 在 MySQL 中插入图像时出错
- javascript - 如何将 dropzone 放在表单中但仍允许原始表单提交?
- c# - 从 Azure Active Directory 获取 MVC Web App 中的 samAccountName 名称
- haskell-stack - 如何显示`stack haddock`的进度?
- jquery - 当使用 Laravel 取消选择另一个框时,取消选择“全选”复选框。