copy - powershell iterate through multiple subfolders for differences and move to multiple targets -
relatively new ps. trying write ps iterate through multiple source , target subfolders same folder names. gci against each folder in both source , target, perform diff , copy differences sources target. have script working single sub-folder.
############# source ############# $s = "c:\logbackup\conversionexpress\" $src_conexp = [string[]](gci $s -recurse -include *.safe, *.done) #test location ############ target ############# $t = "c:\logbackup\conversionexpress2\" #tst $trg_conexp = [string[]](gci $t -recurse -include *.safe, *.done) #tst diff -referenceobject ($src_conexp) -differenceobject ($trg_conexp) -passthru | % { cpi -path $_ -destination $t -force } my issue is, have 6 sub-folders in source , target need diff against , copy resulting diff's corresponding target file location.
here ugly r&d has got me:
#$pfolder = "c:\logbackup\" $sfolders = $(gci "c:\logbackup\"); $tfolders = $(gci "c:\logbackup2\"); foreach ($s in $sfolders) { $sfile = (gci "c:\logbackup\$_" -r -include *.safe, *.done); } foreach ($t in $tfolders) { $tfile = (gci "c:\logbackup2\$_" -r -include *.safe, *.done); diff -referenceobject ($sfile) -differenceobject ($tfile) -passthru | % { cpi -path $_ -destination $t -force } } i wanted maybe see if function found work well.
function getfiles($folder) { write-host "+"$folder.name foreach($file in $folder.files) { write-host "`t" $file.name } # use recursion loop through subfolders. foreach ($subfolder in $folder.subfolders) { write-host "`t" -nonewline getfiles($subfolder) } } any direction or me past appreciated. thanks.
Comments
Post a Comment