我正在尝试重命名文件名中包含括号的文件。这似乎不起作用,因为 powershell 将 [] 视为特殊字符并且不知道该怎么做。
我的计算机上有一个文件夹 c:\test。我希望能够查看该文件夹并重命名文件的所有文件或部分。以下代码似乎有效,但如果文件中包含任何特殊字符,则代码将失败:
Function RenameFiles($FilesToRename,$OldName,$NewName){
$FileListArray = @()
Foreach($file in Get-ChildItem $FilesToRename -Force -Recurse | Where-Object {$_.attributes -notlike "Directory"})
{
$FileListArray += ,@($file)
}
Foreach($File in $FileListArray)
{
IF ($File -match $OldName )
{
$File | rename-item -newName {$_ -replace "$OldName", "$NewName" }
}
}
}
renamefiles -FilesToRename "c:\test" -OldName "testt2bt" -NewName "test"
我确实找到了一个类似的问题:Replace square bracket using Powershell,但我不明白如何使用答案,因为它只是一个解释错误的链接: