如何通过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文件夹中。
1 Answers
#源文件夹
$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
}
}
赞 直接上代码了

在线等