Regex 替换文件名中的第一个字符
我正在读取文件名,如果文件不是以Regex 替换文件名中的第一个字符,regex,powershell,Regex,Powershell,我正在读取文件名,如果文件不是以N开头,我需要用字母N替换该字母 foreach($Get ChildItem$Path中的项){ 编写主机“处理$item” 如果($item-match“^(N\d{3})”){ #此文件已正确处理 }elseif($item-match“^(\d{3})”){ $FilePath=$Path+$item 写入主机$FilePath #重命名此文件以使其正确处理 重命名项$FilePath N$Item-Force 将主机“重命名:$item”写入N$item
N
开头,我需要用字母N
替换该字母
foreach($Get ChildItem$Path中的项){
编写主机“处理$item”
如果($item-match“^(N\d{3})”){
#此文件已正确处理
}elseif($item-match“^(\d{3})”){
$FilePath=$Path+$item
写入主机$FilePath
#重命名此文件以使其正确处理
重命名项$FilePath N$Item-Force
将主机“重命名:$item”写入N$item”
}elseif($item-match“^[a-zA-Z](\d{3})”){
#将第一个字符替换为“N”
#如何将第一个字母替换为“N”?
}
}
您的想法太复杂了。这应足以:
Get-ChildItem $Path | Rename-Item -NewName { $_.Name -creplace '^[^N]','N' }
或者,如果您不想“重命名”那些已经以大写字母开头的文件,请执行以下操作:
Get-ChildItem $Path |
Where-Object { $_.Name -cmatch '^[^N]' } |
Rename-Item -NewName { $_.Name -creplace '^[^N]','N' }
你的想法太复杂了。这应足以:
Get-ChildItem $Path | Rename-Item -NewName { $_.Name -creplace '^[^N]','N' }
或者,如果您不想“重命名”那些已经以大写字母开头的文件,请执行以下操作:
Get-ChildItem $Path |
Where-Object { $_.Name -cmatch '^[^N]' } |
Rename-Item -NewName { $_.Name -creplace '^[^N]','N' }