删除包含 [ 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.txt
、filee.txt
或 files.txt
的文件。
将 -LiteralPath
参数与提供程序 cmdlet 一起使用以抑制路径中的通配符扩展:
Remove-Item -LiteralPath $File.FilePath -Force
问题,正在搜索大量 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.txt
、filee.txt
或 files.txt
的文件。
将 -LiteralPath
参数与提供程序 cmdlet 一起使用以抑制路径中的通配符扩展:
Remove-Item -LiteralPath $File.FilePath -Force