在我们的服务器上,我们有类似以下的文件:
C:\Documents and Settings\username\Application Data\Sun\Java\jre1.6.0_01\
C:\Documents and Settings\username\Application Data\Sun\Java\jre1.6.0_02\
C:\Documents and Settings\username\Application Data\Sun\Java\jre1.6.0_03\
etc
我们不再需要这些文件,因此我尝试编写一个powershell脚本来删除它们。现在我将自己限制在一个特定的服务器上,我有以下脚本:
$path = "\\server\c$\Documents and Settings\"
Get-ChildItem $path -Recurse | Where {$_.PSIsContainer -and ($_ -match '^jre1.6.0_')} | Remove-Item -Recurse -WhatIf
问题是我使用的模式似乎没有调用匹配,我不确定我做错了什么。我尝试了几种排列,但似乎都没有。任何正则表达的大师都可以说明我可能做错了吗?
由于 布拉德
答案 0 :(得分:3)
试试这样:
Get-ChildItem $path -Recurse -Force | ....
-Force
也会查找隐藏或系统文件/文件夹。
“应用程序数据”文件夹已隐藏!
答案 1 :(得分:1)
正则表达式没问题,我想你应该试试
$_.Name -match '^jre1.6.0_'
而不仅仅是
$_ -match '^jre1.6.0_'