如何通过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 } }
赞 直接上代码了
在线等