PowerShell命令在特定位置向文件名添加字符

PowerShell command to add character to filename at specific position

我想在文件名的第 22 位添加下划线字符“_”。 执行此操作的 PowerShell 命令是什么?

您可以使用 -replace 和一个简单的正则表达式来实现。

在下面的示例中,我首先使用 Get-Item cmdlet and rename it using Rename-Item 检索文件:

Get-Item $YOURPATH | % { $_ | Rename-Item -NewName ($_.Name -replace '^([\S\s]{22})', '_')}  

您可能必须添加一个检查文件名是否足够长,否则可能会发生,您重命名文件扩展名或什么都没有...

或者你也可以使用字符串方法insert

Get-Item -Path $Path | 
  Rename-Item -NewName {$_.BaseName.insert(22,'_') + $_.Extension} -WhatIf

注意:删除 -whatif 以应用重命名

下面的脚本将在位置 3 和 6 以及 9 和 12 和 15 添加 '-'

来自:s270120070336.bmp

至:s27-01-20-07-03-36.bmp

Get-ChildItem -Path 'C:\users\sonook\desktop\screenshot' -Filter '*.bmp' |

ForEach-Object { $_ | Rename-Item -NewName {$_.BaseName.insert(3,'-').insert(6,'-').insert(9,'-').insert(12,'-').insert(15,'-') + $_.Extension}}