2012-05-10 3 views
4

가장 최근의 10 개 디렉토리를 제외한 모든 디렉토리를 삭제하려고합니다. 항상 java 디렉토리를 제외합니다. 불행히도 "자바"디렉토리의 내용을 제외한 나머지 10 개는 모두 삭제합니다.x 개의 디렉토리를 유지하고 다른 모든 디렉토리를 삭제하고 매번 하나의 디렉토리와 그 내용을 제외해야합니다.

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 

내 계획을 실행하는 것입니다 : 다음과 같이 Keep x number of files and delete all others - PART TWO

디렉토리 구조는 다음과 같습니다

내가 제대로 작동하려면 내 상황을 얻기는 아래의 링크에서 솔루션을 수정하려고했는데 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 
} 

답변

3

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 
} 

는 에코가 부담없이 나에게 디버깅을 돕기 위해 단지있다 그들을 제거하십시오.

+0

나는 13 개의 최상위 디렉토리를 가지고 있는데 그 중 하나는 자바 디렉토리이다. 다른 12 개의 디렉토리의 모든 내용을 삭제했습니다. : – rainhailrob

+0

죄송합니다. 추가로 \ * – rainhailrob

+0

이 실행되고있는 유일한 문제는 스크립트가 삭제 확인을 요청한다는 것입니다. – rainhailrob

관련 문제