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スクリプトを作成して削除しようとしています。今のところ、私は自分自身を1つの特定のサーバーに制限しており、次のスクリプトがあります。

 $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 に答える