PowerShell SVN 添加文件并以指定时间和用户提交文件

本文档提供了一种使用PowerShell脚本批量上传SVN文件的方法,包括详细步骤和注意事项。用户需先填充《文件提交顺序表.xlsx》,然后根据说明调整表格格式,并在svn根目录运行autoAddCommit.ps1脚本进行提交。

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

// 文件:使用说明.txt
// 用途:批量上传 SVN 脚本的说明
// 适用脚本版本:2016-07-12

1、填写《文件提交顺序表.xlsx》,全部填写完成后按时间升序排列(如果时间形如:2016-3-2 9:2:12,要写成 2016-03-02 09:02:12,以免 excel 排序不准确。排序分列以后,就无所谓了)。升序排列后,拆分时间列,分为“日期”列和“时间”列。可先填写“原始整理表格”,然后复制到“排序整理后表格”里进行各项操作,以免出错又要重新填写一遍。

2、将在表格中得到的 6 列数据,复制到“1.txt”中。同一行的相邻两个数据之间,用 \t 作为分隔符(“\t”是不可见字符,一般默认复制过来,就是用 \t 分割的,不用处理,虽然看起来比较像空格)

3、在对应的 svn 根目录下,运行 autoAddCommit.ps1。脚本将从 1.txt 中读取数据,按 \t 作为分隔符切割每行数据,向 svn 进行提交。

4、示例文件见本文件夹。使用时注意修改脚本中的行数,即第 9 行的“127”,改成实际的条目行数

PowerShell 脚本

# 文件名:autoCommit.ps1
# 用途:为了批量上传 svn

# 读取文件内容
$line = get-content 1.txt

# 逐行解析文件
for($i = 0; $i -lt 5; $i++)
{
    # 用 tab 作为分隔符
    $tokens = $line[$i].split("`t")

    # 判断和上一行相比时间是否变化了
    if(($date -eq $tokens[0]) -and ($time -eq $tokens[1]))
    {
        $changeTime = 0
    }
    else
    {
        $changeTime = 1
    }

    # 判断和上一行相比用户是否变化了, 同时更新“用户名密码”字符串
    if($username -eq $tokens[2])
    {
        $changeUser = 0
    }
    else
    {
        $changeUser = 1
    }

    # 如果用户变化了或者时间变化了
    # 而且不是第一行数据,那么就提交一次
    if(($changeTime -eq 1) -or ($changeUser -eq 1))
    {
        if($i -ne 0)
        {
            svn commit -m $commitMsg --username $username --password $password  
        }
    }

    # 更新本行变量
    $date = $tokens[0]
    $time = $tokens[1]
    $username = $tokens[2]
    $password = $tokens[3]
    $filepath = $tokens[4]
    $commitMsg = $tokens[5]

    # 如果时间应该变化,则修改系统时间
    if($changeTime -eq 1)
    {
        set-date  $date
        set-date  $time
    }

    # 发出 svn add 命令
    svn add $filepath 
}

# 提交最后的一批数据
svn commit -m $commitMsg --username $username --password $password  

文件提交顺序表:

时间用户密码完整路径文件名更新日志
2013.01.03 12.23.43adminadminD:/test/file1.txt提交file1
2013.02.03 12.23.43adminadminD:/test/file2.txt提交file2

填写完并按时间排序后,将时间列以空格分列。拆成日期和时间两部分。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值