[原创]PowerShell 1.0 SVN更新脚本

本文分享了一个使用PowerShell编写的脚本,该脚本能够遍历目录并更新所有SVN版本控制的文件夹。作者在实践中遇到了一些问题,并寻求社区的帮助。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

想学习学习PS,于是找了个小需求:自动更新俺那些收集来的开源代码。只写了调用SVN客户端的,GIT我还不会用:P

功能是实现了,不过还有很多问题没搞清楚。先上代码:

ContractedBlock.gifExpandedBlockStart.gifCode
 1#Update.ps1  Create by chinajuanbob 2009.4.8
 2function SVNUpdate([string]$Path)
 3{
 4    Write-Host -foregroundcolor green "SVN Update $Path"
 5     & 'C:\Program Files\SlikSvn\bin\svn.exe' up $Path
 6}
 7function Work([string]$Path)
 8{
 9    #find .svn directory
10    $a = Get-ChildItem($Path-force | Where-Object {$_.Name -eq ".svn" -and $_.PSIsContainer -eq $True}
11    if($a -eq $null)
12    {
13        #not found
14        $b = Get-ChildItem($Path-force | Where-Object {$_.PSIsContainer -eq $True}
15        if($b -ne $null)#important
16        {
17            foreach($item in $b)
18            {
19                Work($item.FullName)
20            }
21        }
22    }
23    else 
24    {
25        SVNUpdate($Path)     
26    }
27}
28Work(Get-Location)

 

其中这句

$a = Get-ChildItem($Path-force | Where-Object {$_.Name -eq ".svn" -and $_.PSIsContainer -eq $True}

是利用管道对结果进行筛选,其实用这句似乎也没什么问题

$a = Get-ChildItem($Path-force -name -include .svn

还是严谨点的好,不知道效率有没有区别。别的就没啥好说的了,就是遍历,迭代。

 

有以下问题想向大伙请教:
1、为啥我这里不能直接调用命令行实现,如

svn up $Path

而必须要转义(费了1小时-_-),这样

& 'C:\Program Files\SlikSvn\bin\svn.exe' up $Path


2、如果不判断结果是否非空,直接上迭代器貌似也会运行代码段(用$null? 此处又费了1小时_-_)

if($b -ne $null)#important
{
    
foreach($item in $b)
    {
        
#code
    }
}


3、有没有什么好的免费IDE可用,这点代码我是连猜带蒙,写出来都有中大奖的感觉了。

就这么多吧,欢迎拍砖,转载请注明出处,有用的话请回帖鼓励俺一下,谢谢:)

 

转载于:https://www.cnblogs.com/chinajuanbob/archive/2009/04/08/1432008.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值