删除包含 [ and/or ] 的项目或重命名项目

Remove-Item or Rename-Item that contains [ and/or ]

问题,正在搜索大量 directories/files 以清理超过 10 年的文件。某些文件夹和文件的名称中带有 [ ]。 即

C:\Temp\Test_Old_Folder\Test [TEST]\Test [TEST].txt
C:\Temp\Test_Old_Folder\Test [TEST]\Test - Copy.txt

我有一个脚本可以检查上次访问日期,如果访问日期超过 10 年,它将删除文件。目前我们正在使用卷影副本,因此如果用户在未来 2 年内需要它,他们可以返回并找到文件。

foreach ($File in $FileList) {
    Remove-Item -Path $File.FilePath -Force
}

我试图将包含 [ ] 的 files/folder 重命名为其他名称,但是,这也没有用。我可以手动删除 files/folder,但是,如果文件服务器上的多个文件夹中有数百个,这就是浪费工时。有没有办法注释掉[]。我知道在某些语言中,您可以使用单个 ` 将以下字符读取为字符串,而不是操作或您想要调用的任何内容。

如有任何帮助,我们将不胜感激。

至少在 PowerShell 中的路径解析上下文中,字符串 [abc] 被解释为 通配符模式 。它与正则表达式中的含义相同,“这些字符中的任何一个”。

因此,如果您这样做 Get-Item -Path 'file[test].txt'Get-Item 会尝试将其解析为任何名为 filet.txtfilee.txtfiles.txt 的文件。

-LiteralPath 参数与提供程序 cmdlet 一起使用以抑制路径中的通配符扩展:

Remove-Item -LiteralPath $File.FilePath -Force