Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 替换文件名中的第一个字符_Regex_Powershell - Fatal编程技术网

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' }