使用powershell实现文件夹

2017年09月01日讲师:林老师浏览:4899次

$ConfirmPreference="none" $File=Import-Csv path.csv -Encoding Default $LogFile="sync_log.csv" $Table = @{"source"='';"destination"='';"datetime"='';"SHA_Resu1t"='';} $Pstable =New-object -TypeName psobject -Prop $Table $Pstable | select-Object source,destination,datetime,SHA_Resu1t | Export-csv $LogFile -Force -NoTypeInformation -Encoding UTF8 foreach ($item in $File) { $s=$item.source.ToString().tolower()+'\' $d=$item.destination.ToString().tolower()+'\' Get-ChildItem $item.source -Recurse | ForEach-Object -Process { $Spath=$_.FullName.ToString().tolower() $Dpath=$Spath.replace("$s","$d") $datetime=get-date If((Test-Path -Path $Dpath) -eq $true) { if(((Get-ChildItem $Dpath).psiscontainer) -eq $false) { if((Get-Item $Spath).LastWriteTimen -gt (Get-Item $Dpath).LastWriteTime) { Copy-Item "$Spath" -Destination "$Dpath" -Force $OutInfo=$Spath.ToString()+','+$Dpath.ToString()+','+$datetime.ToString() $OutInfo $WriteLog=Out-File -FilePath "$LogFile" -InputObject "$OutInfo" -Append -Encoding utf8 $WriteLog } elseif ((Get-Item $Spath).LastWriteTimen -lt (Get-Item $Dpath).LastWriteTime) { Copy-Item "$Dpath" -Destination "$Spath" -Force $OutInfo=$Dpath.ToString()+','+$Spath.ToString()+','+$datetime.ToString() $OutInfo $WriteLog=Out-File -FilePath "$LogFile" -InputObject "$OutInfo" -Append -Encoding utf8 $WriteLog } } } else { Copy-Item "$Spath" -Destination "$Dpath" -Force $OutInfo=$Spath.ToString()+','+$Dpath.ToString()+','+$datetime.ToString() $OutInfo $WriteLog=Out-File -FilePath "$LogFile" -InputObject "$OutInfo" -Append -Encoding utf8 $WriteLog } } Get-ChildItem $item.destination -Recurse | ForEach-Object -Process { $RDpath=$_.FullName.ToString().tolower() $RSpath=$RDpath.replace("$d","$s") $datetime=get-date If((Test-Path -Path $RSpath) -eq $false) #对比destination 中的对象是否在source中存在 { Copy-Item "$RDpath" -Destination "$RSpath" -Force $OutInfo=$RDpath.ToString()+','+$RSpath.ToString()+','+$datetime.ToString() $OutInfo $WriteLog=Out-File -FilePath "$LogFile" -InputObject "$OutInfo" -Append -Encoding utf8 $WriteLog } } }
分享 0

您已经赞过了!