powershell - 根据修改时间删除目录

标签 powershell deployment build

我正在使用 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/

相关文章:

c# - System.DllNotFoundException 在客户端的 PC 中单击一次部署

.net - InstallShield 2012 - 使用 Microsoft Visual C++ 2012 Redistributable 部署应用程序?

java - 如何使用 ant 为现有项目生成 javadoc?

sql-server - 意外 token 'UpdateOptions.ExpandFull'

.net - 如何使用 .NET 确定 Windows 上网络接口(interface)的绑定(bind)顺序?

java - powershell '<' 运算符保留供以后在 Java 中使用

java - 禁用 mvn 快照不起作用

.net - 在使用 select-xml 应用 XPath 表达式后,是否有可靠的方法来获取所选元素的名称

ios - 您能否删除 iOS 移动设备上安装程序用户代理(不同于 Safari)使用的 cookie?

linux - 配置 NGINX 时如何使用环境变量作为前缀路径?