Windows Powershell 复制trunk文件到unit脚本

公司项目开发版本在trunk,测试版本在unit. 迭代版本时经常需要在trunk commit之后, 手动copy到unit提交给测试, 很烦so直接上脚本:


#前提:系统开始栏搜索"powershell"以管理员权限启动,执行Set-ExecutionPolicy RemoteSigned,选择Y
#1.$trunkPath默认是当前脚本所在文件夹, 也可以文本编辑器打开CopyTrunk2Unit.ps1修改具体的$trunkPath目录
#2.a.可以右键菜单powershell执行;b.可以在powershell中直接输入文件路径执行;c.可以在cmd中以"powershell.exe -file ps1脚本路径执行"

"START..."
#$trunkPath = "E:\CODES\DEV\200 - mis\report\trunk"
$trunkPath = Split-Path -Parent $MyInvocation.MyCommand.Definition 
$trunkPath += "\trunk"

$allTrunkFiles = Get-ChildItem -LiteralPath $trunkPath -Recurse
$copyList=@()
$allTrunkFiles | Where-Object { $_.Length -ne $null } | foreach {
 if(-not $_.Name.toLower().EndsWith(".svn")){
     $trunkFilePath = $_.FullName
     $unitFilePath = $trunkFilePath.Replace("trunk","unit")
     if(Test-Path $unitFilePath){
        $trunkFileTime = $_.LastWriteTime
        $unitFileTime = (Get-Item $unitFilePath).LastWriteTime
        if($trunkFileTime -gt $unitFileTime){
            #"---trunk file lastwritetime gt unit file lastwritetime, override---"  
            "---Copy [$trunkFilePath] TO [$unitFilePath]---"
            Copy-Item -Path $trunkFilePath -Destination $unitFilePath -Force -Passthru
            $copyList+=$trunkFilePath
        }
     }else{
        #"---trunk file not exist in unit, copy---"
        "---Copy [$trunkFilePath] TO [$unitFilePath]---"
         $null = New-Item -Path $unitFilePath -Type File -Force 
         Copy-Item -Path $trunkFilePath -Destination $unitFilePath -Force -Passthru
         $copyList+=$trunkFilePath
     }
 }
}

"-------------------------Total:"+$copyList.Count+"-----------------------------"
$copyList
"-------------------------Total:"+$copyList.Count+"-----------------------------"
"END..."
read-host
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值