我不知道Powershell,而且我的大部分工作都是在CMD中完成的。我遇到了两种方法,我认为在PowerShell中做同样的事情(用合法字符替换非法字符兼容的W/ Windows文件资源管理器)?我想知道下面的一个是否比另一个更值得推荐?他们中的任何一个真的不推荐吗?Get-ChildItem -File -Recurse | Rename-Item -NewName {$_.name -replace "\]", ")"}
Get-ChildItem -File -Recurse | % { Rename-Item -Path $_.PSPath -NewName $_.Name.replace("\]", ")"}
也想知道为什么下面两个是他们的方式。似乎有人会出错。$_.name -replace
$_.Name.replace
谢谢你的任何信息。
1条答案
按热度按时间gudnpqoy1#
这两种方法都可以使用,但区别在于
.Replace
是文字替换,在您的示例中,它将尝试查找并替换文字\]
,而-replace
使用正则表达式,如果您想要匹配文字]
,则需要使用\
对该字符进行转义。请参见转义字符。在这两个例子中,我绝对建议执行预过滤,只查找包含
]
的文件。如果您希望两者完全相同(从文件中将]
替换为)
),则: