6

Java ディレクトリを常に除外して、最新の 10 個のディレクトリを除くすべてを削除しようとしています。残念ながら、「java」ディレクトリの内容も最後の 10 個を除いてすべて削除されています。

次のリンクからソリューションを変更して、状況が適切に機能するようにしようとしています: x 個のファイルを保持し、その他すべてを削除する - パート 2

ディレクトリ構造は次のとおりです。

dev_app_backup\java
dev_app_backup\2012-05-09_01-00-05_commnXsl  (contains Xsl files)
dev_app_backup\2012-05-09_01-00-05_published  (contains zip files)
dev_app_backup\various-dates-time_commonXsl
dev_app_backup\various-dates-time_published

私の計画は、2 つ目のスクリプトを実行して Java サブディレクトリを一掃することです。

#----- define folder where files are located ----#
$TargetFolder = "\\test\TestShare\dev_app_backup\*"

#----- number of directories to keep ----#
$keep = 10

#----- get zip files based on lastwrite filter ---#
$files = Get-Childitem $TargetFolder -recurse -exclude java

if ($files.Count -gt $keep) 
{
$files | Sort-Object -property $_.LastWriteTime | Select-Object -First ($files.Count - $keep) | Remove-Item -Force
}
4

1 に答える 1

4

OK、これが私が思いついたスクリプトです。申し訳ありませんが、これは私の最初の PowerShell スクリプトです...

$TargetFolder = "\test\TestShare\dev_app_backup*"
$keep = 10
$folders = Get-Childitem $TargetFolder -exclude java*
echo "folders"
echo $folders
echo "endfolders"
echo $folders.Count
echo $folders | Sort-Object -property $_.LastWriteTime | Select-Object -First ($folders.Count - $keep)
foreach ($folder in $folders | Sort-Object -property $_.LastWriteTime | Select-Object -First ($folders.Count - $keep))
{
echo $folder
$files = Get-Childitem $folder -recurse
echo $files
Remove-Item -Force $folder\$files
Remove-Item -Force $folder
}

エコーはデバッグに役立つだけのものです。自由に削除してください。

于 2012-05-10T18:25:22.847 に答える