我正在使用 Powershell 脚本在我们的远程服务器上部署代码库。
脚本的一个主要部分将当前版本复制到服务器。现在我只需要保留远程服务器上的最后两个版本并删除所有其他版本。
我需要保留最新的两个版本
例如: 在远程服务器中,我有
//server001/Application/
Build_1_0_0_19
Build_1_0_0_18
Build_1_0_0_17
Build_1_0_0_16
我需要在部署 _19
时清除构建 _17
和 _16
。
我们可以按照修改时间对目录进行排序,最后两个排在最前面。其余的都不是必需的。
这可以通过 Powershell 脚本完成吗?
附言构建并不总是按顺序进行
最佳答案
你可以这样做:
#requires -version 2
Get-ChildItem //server001/Application/|
Sort-Object CreationTime -Descending|
Select-Object -Skip 2|
Remove-Item -Recurse -Confirm
一旦您确定它执行您想要的操作,只需删除 -Confirm
开关即可。
这是一个 v1 兼容的方法:
$dirs = @(Get-ChildItem //server001/Application/)
$dirs|
Sort-Object CreationTime -Descending|
Select-Object -Last ($dirs.Count - 2)|
Remove-Item -Recurse -Confirm
关于powershell - 根据修改时间删除目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7090825/