Powershell 删除各种数字和括号
我有各种照片文件,例如Powershell 删除各种数字和括号,powershell,duplicates,Powershell,Duplicates,我有各种照片文件,例如dsc001(0).jpg,dsc002(3).jpg,dsc003(13).jpg 如何删除括号和数字,使其显示为dsc001.jpg,dsc002.jpg等 目前我一直在使用 Get-ChildItem *.jpg | foreach { Rename-Item $_ $_.Name.Replace("(0)", "") } 并且每次都更改数字。您可以使用正则表达式匹配来使用-Replace操作符执行此操作 GCI *.jpg|%{ $NewName =
dsc001(0).jpg
,dsc002(3).jpg
,dsc003(13).jpg
如何删除括号和数字,使其显示为dsc001.jpg
,dsc002.jpg
等
目前我一直在使用
Get-ChildItem *.jpg | foreach {
Rename-Item $_ $_.Name.Replace("(0)", "")
}
并且每次都更改数字。您可以使用正则表达式匹配来使用
-Replace
操作符执行此操作
GCI *.jpg|%{
$NewName = $_.Name -replace '\(\d+\).jpg$','.jpg'
$_|Rename-Item -NewName $NewName
}
要在子文件夹中包含内容,请执行以下操作:
GCI *.jpg -recurse |%{
$NewName = $_.Name -replace '\(\d+\).jpg$','.jpg'
$_|Rename-Item -NewName $NewName
}
要重命名文件夹,请执行以下操作:
GCI *|Where{$_.PSIsContainer}|%{
$NewName = $_.Name -replace '\(\d+\)$'
$_|Rename-Item -NewName $NewName
}
您可以使用正则表达式匹配来使用
-Replace
操作符执行此操作
GCI *.jpg|%{
$NewName = $_.Name -replace '\(\d+\).jpg$','.jpg'
$_|Rename-Item -NewName $NewName
}
要在子文件夹中包含内容,请执行以下操作:
GCI *.jpg -recurse |%{
$NewName = $_.Name -replace '\(\d+\).jpg$','.jpg'
$_|Rename-Item -NewName $NewName
}
要重命名文件夹,请执行以下操作:
GCI *|Where{$_.PSIsContainer}|%{
$NewName = $_.Name -replace '\(\d+\)$'
$_|Rename-Item -NewName $NewName
}
我对这个很陌生,什么是正则表达式,它和powershell有什么不同吗?正则表达式是正则表达式的缩写。这是一种执行模式匹配的方法,提供了大量信息,并解释了这个特殊的正则表达式。我将使用
-Filter'*(*).jpg'
并直接通过管道重命名ItemGet ChildItem-Filter'*(*).jpg'\;Rename Item-NewName{$\.Name-replace'*\(\d+\).jpg$,'.jpg'}
我的下一个问题。。是否有一种方法可以在包含文件的文件夹上执行此任务,而不是为每个文件夹设置位置。例如,我必须在H:\User\Photos\Canon和H:\User\Photos\Sony中查找其他文件夹,我不能直接转到H:\User\Photos并运行此文件夹。是的,只需添加-recurse开关我对此非常陌生,什么是regex,它与powershell不同吗?regex是正则表达式的缩写。这是一种执行模式匹配的方法,提供了大量信息,并解释了这个特殊的正则表达式。我将使用-Filter'*(*).jpg'
并直接通过管道重命名ItemGet ChildItem-Filter'*(*).jpg'\;Rename Item-NewName{$\.Name-replace'*\(\d+\).jpg$,'.jpg'}
我的下一个问题。。是否有一种方法可以在包含文件的文件夹上执行此任务,而不是为每个文件夹设置位置。例如,我必须先打开H:\User\Photos\Canon,然后打开H:\User\Photos\Sony,才能打开其他文件夹,难道我不能直接转到H:\User\Photos并运行此操作吗?是的,只需添加-recurse开关即可