ファイル名に括弧が含まれるファイルの名前を変更しようとしています。これは、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"
私は同様の質問を見つけました: Powershell を使用して角括弧を置き換えます、しかし、バグを説明する単なるリンクであるため、答えの使い方がわかりません: