如何通过Powershell 进行compare文件夹,然后把新增的部分按原有文件目录输出到另外一个文件夹中


PowerShell交流中心分类: 文件和注册表如何通过Powershell 进行compare文件夹,然后把新增的部分按原有文件目录输出到另外一个文件夹中
0
richard asked 8 年 ago

如何通过Powershell 进行compare文件夹,然后把新增的部分按原有文件目录输出到另外一个文件夹中。
例如:
A 文件夹:   修改时间          size
bin/a.dll    2017-4-21 16:16   100kb
bin/b.dll    2017-4-21 16:16    100kb
images/banner/1.jpg 2017-4-21 16:16  100kb
 
B 文件夹:   修改时间  size
bin/a.dll    2017-4-21 16:16  100kb
bin/b.dll    2017-4-21 16:17   119kb
images/banner/1.jpg 2017-4-21 16:17  121kb
 
需要把  bin/b.dll,images/banner/1.jpg  从B文件夹中 copy到C文件夹中。

richard replied 8 年 ago

在线等

1 Answers
0
Mooser Lee 管理员 answered 8 年 ago
#源文件夹
$srcdir = "D:\pstips.net\source";
#目标文件夹
$destdir = "D:\pstips.net\target";

Get-ChildItem $SrcDir -recurse -File | foreach {
 $targetFile =  Join-Path $destdir $_.FullName.Substring($srcdir.Length)
 #如果文件不存在,准备复制。
 #TODO,可以在这里加入额外逻辑,通过文件大小,文件创建时间,md5值判断文件是否需要替换
 if( -not(Test-Path $targetFile)){ 
   #如果目标文件夹不存在,先创建
   $targetDir = Split-Path $targetFile
   if(-not(Test-Path $targetDir)) {
    mkdir $targetDir
   }
   #复制文件
   Copy-Item -Path $_.FullName -Destination $targetFile
 }
}
richard replied 8 年 ago

赞 直接上代码了