powershell - 如何在 PowerShell 中忽略文件的一部分并重命名另一个文件
问题描述
我目前正在运行一个脚本来替换文件的某些指定字符。我最近注意到一些文件的文件名中有类似的字符。我只想重命名文件名之后的部分_
。
示例文件名:
WB03042019_1226324201
我当前的脚本:
Get-ChildItem *4201.dat | foreach {
Rename-Item $_ $_.Name.Replace("4201", "hfmau2")
}
我的问题是这会产生这个文件名:
WB030hfmau29_122632hfmau2
解决方案
由于您的问题没有显示所需的文件名应该是什么,因此尚不清楚。
如果您只想更改文件名末尾和下划线后的“4201”,您可以使用以下命令:
Get-ChildItem -Path '<PATH TO THE FILES>' -Filter *4201.dat -File |
Rename-Item -NewName {'{0}{1}' -f ($_.BaseName -replace '4201$','hfmau2'), $_.Extension}
这会产生新的文件名:
WB03042019_122632hfmau2.dat
如果您想更改下划线之后的所有内容并且“4201”只是为了过滤您的文件,那么应该这样做:
Get-ChildItem -Path '<PATH TO THE FILES>' -Filter *4201.dat -File |
Rename-Item -NewName {'{0}{1}' -f ($_.BaseName -replace '(.+_)(\w+)$','$1hfmau2'), $_.Extension}
这会产生新的文件名:
WB03042019_hfmau2.dat
如果这不是您想要的,请编辑您的问题并向我们展示所需的新文件名应该是什么。
推荐阅读
- android - Android:Realm.getInstance(config)上的表索引超出范围领域android
- java - 执行器服务或守护线程哪个更适合多线程?
- vb.net - 从字符串到整数的转换无效
- javascript - 如何在 Typescript 中显式识别全局命名空间中的实体?
- ios - JSON 解析,嵌套 JSON 结构的问题
- python - 如何在 Python 的堆数据结构中实现 max_heapify
- c++ - C++ 是否存在“不相等比较和交换”或“获取添加不相等”?
- java - 如何停止每次从处理程序显示的相同警报对话框?
- hive - 删除 Hive 中具有交换列的行
- laravel - 如何使用 Laravel 在 resellerclub API 中传递值