Powershell 如何更改大写字母以更正特定单词的大小写?
嗨,我需要更改特定单词的大小写 例如:Powershell 如何更改大写字母以更正特定单词的大小写?,powershell,rename,Powershell,Rename,嗨,我需要更改特定单词的大小写 例如: RX PPLLC-史密斯医生-约翰·史密斯-哦-疼痛-利多卡因 RX PPLLC-史密斯医生-约翰·史密斯-哦-疼痛-非诺洛芬 RX PPLLC-史密斯医生-约翰·史密斯-OH-皮炎-地氟松 RX PPLLC-史密斯博士-约翰·史密斯-OH-疤痕-西尔维克斯垫 应该是这样的: RX PPLLC-史密斯医生-约翰·史密斯-哦-疼痛-利多卡因 RX PPLLC-史密斯医生-约翰·史密斯-哦-疼痛-非诺洛芬 RX PPLLC-史密斯医生-约翰·史密斯-OH
- RX PPLLC-史密斯医生-约翰·史密斯-哦-疼痛-利多卡因
- RX PPLLC-史密斯医生-约翰·史密斯-哦-疼痛-非诺洛芬
- RX PPLLC-史密斯医生-约翰·史密斯-OH-皮炎-地氟松
- RX PPLLC-史密斯博士-约翰·史密斯-OH-疤痕-西尔维克斯垫
- RX PPLLC-史密斯医生-约翰·史密斯-哦-疼痛-利多卡因
- RX PPLLC-史密斯医生-约翰·史密斯-哦-疼痛-非诺洛芬
- RX PPLLC-史密斯医生-约翰·史密斯-OH-皮炎-地氟松
- RX PPLLC-史密斯博士-约翰·史密斯-OH-疤痕-西尔维克斯垫
get-childitem-recurse | rename-item-newname{$\u.name-replace“PAIN”,“PAIN”}
get-childitem-recurse | rename-item-newname{$\u.name-replace“SCAR”,“SCAR”}
get-childitem-recurse | rename-item-newname{$\名称-替换“皮炎”、“皮炎”}
现在的问题是,我是否可以将其整合到一个代码中?对于其他文件名,结尾的单词并不总是一个单词2或更多
提前谢谢。看起来您需要使用
标题库
重命名文件。注意,转换为TitleCase
并不适用于所有上限。因此,我们需要将字符串ToLower()
:
另一个注意事项是,这也会将“RX PPLLC”更改为标题酶。如果需要忽略这一点,则可能需要使用子字符串来绕过它
更新:--如果您想保留“RX PPLLC”:
有更好的方法可以做到这一点。基本上,这将把文件名分成两个字符串(左侧和右侧)。它将更改右键,然后将其放回名为$newName
的变量中。这仅在文件名包含-
时有效。如果你想处理这些情况,你需要一个条件或正则表达式。。。这只是一个简单的例子如何使用子字符串?@GabrielBalenton更新了一个简单的例子。该代码将在第一个-
之后对所有内容应用标题库,将OH
更改为OH
。我会这样做:$parts=$\u.Name.Split'-'$parts[4]=(获取区域性).TextInfo.ToTitleCase($parts[4].ToLower())$NewName=$parts-join'-'
是的,这会将OH
更改为TitleCase
。假设这是一种状态,那么夜间也要考虑到这一点。
Get-ChildItem -Path "C:\Path" -Recurse | Rename-Item -NewName {$_.Name -replace "$($_.Name)", "$((Get-Culture).TextInfo.ToTitleCase($_.Name.ToLower()))"}
Get-ChildItem -Path "C:\Test" -Recurse | Rename-Item -NewName {
$lefSide = $_.Name.Substring(0,$_.Name.IndexOf('-'))
$rightSide = $_.Name.Substring($_.Name.IndexOf('-') + 1)
$rightSide = $((Get-Culture).TextInfo.ToTitleCase($rightSide.ToLower()))
$newName = $leftSide + $rightSide
$_.Name -replace "$($_.Name)", "$newName"
}