2

在我们的服务器上,我们有类似于以下的文件:

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

问题是我使用的模式似乎没有调用匹配,我不确定我做错了什么。我已经尝试了几种排列,但似乎都没有。那里的任何正则表达式大师都可以阐明我可能做错了什么吗?

谢谢布拉德

4

2 回答 2

3

试试这样:

Get-ChildItem $path -Recurse -Force | ....

-Force还查找隐藏或系统文件/文件夹。

“应用程序数据”文件夹已隐藏!

于 2012-05-08T09:25:17.307 回答
1

正则表达式没问题,我认为您应该尝试

$_.Name -match '^jre1.6.0_'

而不仅仅是

$_ -match '^jre1.6.0_'
于 2012-05-07T17:35:38.363 回答