首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >建议改进我的Powershell脚本,用主服务器的最新内容更新克隆文件夹

建议改进我的Powershell脚本,用主服务器的最新内容更新克隆文件夹
EN

Stack Overflow用户
提问于 2018-10-31 18:13:37
回答 1查看 104关注 0票数 1

想问问社区,我在这里采取的方法,以更新一个克隆文件夹从一个主人。

我有两个文件夹

  1. 主文件夹,它是TFS(Azure Dev Opps)绑定解决方案。
  2. 主人的克隆人,但是吉特布是回购者。

我的主文件夹是一个“TFS解决方案”--它生活在自己的生态系统中,有自己的内部用户,而克隆人'Github‘则有自己的外部用户和自己的生态系统。

有了这个脚本,我要做的是保持克隆回购的最新变化的主人。

母版进行更改->克隆文件--发生的更改将得到更新

重要的是,我不要盲目地剪切和粘贴整个文件夹,从主人到克隆,每次我做一个改变,这是我做的脚本,它现在运行良好,但我想知道我的逻辑是否有任何漏洞,谢谢。

代码语言:javascript
复制
#Create path variables
$olddir = "C:\Data\Master"
$newdir = "C:\Users\Clone"


#Get the list of files in oldFolder
$oldfiles = Get-ChildItem -Recurse -path $olddir | Where-Object {-not ($_.PSIsContainer)}

#get the list of files in new folder
$newfiles = Get-ChildItem -Recurse -path $newdir | Where-Object {-not ($_.PSIsContainer)}

Compare-Object $newfiles $oldfiles  -Property LastWriteTime -Passthru | sort LastWriteTime | foreach {

     $fl = (($_.Fullname).ToString().Replace("$olddir","$newdir")) 
     $dir = Split-Path $fl

  if ($fl  -notlike '*\obj\Release\*'){
     if( $_.Fullname -ne $fl){
               If (!(Test-Path $dir)){
                  mkdir $dir
                }
            copy-item $_.Fullname $fl -Force 
            Write-Host "From to --> " $_.Fullname "TO --> " $fl
        }}
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-31 18:32:27

在我看来挺结实的。有没有任何方法可以本地同步一个Git和TFS?我没有任何TFS的经验。

处理这一问题的另一种方法是将C:\Users\Clone\*.*的内容压缩到一个时间戳文件(例如: OldFiles_changed_01_01_2018_10_42_am.zip),然后复制新修改的回购文件--通过这种方式,您可以在C:\Users\Clone\中获得所做的每个更改的历史副本。(虽然,这有点多余,因为您在前端使用Git )

至于“最佳实践”--这在本质上仅仅意味着‘安全’--在我看来是很好的。就“在实践中”而言,这才是最适合你的方案。如果您不需要每次发生更改时都需要*.zip备份,那么原始脚本看起来很可靠。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53089686

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档