根据修改时间删除目录

Arp*_*pit 3 deployment powershell build

我使用Powershell脚本在远程服务器上部署代码库.

脚本的一个主要部分将当前版本复制到服务器.现在我只需要在远程服务器上保留最后两个版本并删除所有其他版本.

我需要保留最新的两个版本

例如:在远程服务器中,我有

//server001/Application/
    Build_1_0_0_19
    Build_1_0_0_18
    Build_1_0_0_17
    Build_1_0_0_16
Run Code Online (Sandbox Code Playgroud)

我需要清除构建_17_16同时部署_19.

我们可以根据修改的时间对目录进行分类,最后两个将在最前面.休息都不是必需的.

这可以通过Powershell Scripts完成吗?

PS构建并不总是按顺序排列

Ryn*_*ant 6

你可以这样做:

#requires -version 2
Get-ChildItem //server001/Application/|
    Sort-Object CreationTime -Descending|
    Select-Object -Skip 2|
    Remove-Item -Recurse -Confirm
Run Code Online (Sandbox Code Playgroud)

只要-Confirm您确定它可以完成您想要的操作,只需将其取下即可.

这是一个v1兼容的方法:

$dirs = @(Get-ChildItem //server001/Application/)

$dirs|
    Sort-Object CreationTime -Descending|
    Select-Object -Last ($dirs.Count - 2)|
    Remove-Item -Recurse -Confirm
Run Code Online (Sandbox Code Playgroud)

  • @Arpit - 使用v1方法更新.或者使用您的变量,您可以使用`Get-ChildItem // server001/Application/| 其中{('Build_1_0_0_19','Build_1_0_0_18') - notcontains $ _.Name} | Remove-Item -Recurse`,用变量替换名称. (2认同)