function Set-DateAttributes{
[CmdletBinding()]
param(
[Parameter(Mandatory=$true,Position=0,ValueFromPipeline=$true)]$OriginalFilePath,
[Parameter(Mandatory=$true,Position=1,ValueFromPipeline=$true)]$TargetFilePath
)
BEGIN{
}
PROCESS{
[System.IO.FileInfo] $fi = New-Object System.IO.FileInfo -ArgumentList $originalFilePAth
[System.IO.File]::SetCreationTime($targetFilePath,$fi.CreationTime)
[System.IO.File]::SetLastWriteTime($TargetFilePath,$fi.LastWriteTime)
[System.IO.File]::SetLastAccessTime( $TargetFilePath,$fi.LastAccessTime)
}
END{}
}
Set-DateAttributes -OriginalFilePath "D:\CloudOD\OneDrive\Soporte Curriculum\Taller-Big-Data.pdf" -TargetFilePath "D:\Cloud\Dropbox\Desktop\123\Taller-Big-Data.pdf"
[CmdletBinding()]
param(
[Parameter(Mandatory=$true,Position=0)]$source,
[Parameter(Mandatory=$true,Position=1)]$target
)
function CopyInfo{
[CmdletBinding()]
param(
[Parameter(Position=0,mandatory=$true)] [string]$sourceDir,
[Parameter(Position=1,mandatory=$true)] [string]$targetDir
)
if(! [System.IO.Directory]::Exists($targetDir) ){
[System.IO.Directory]::CreateDirectory($targetDir) | Out-Null
}
#get source files
foreach($file in [System.IO.Directory]::GetFiles($sourceDir) ){
$FilePath=[System.IO.Path]::Combine($targetDir, [System.IO.Path]::GetFileName($file))
$FileInfoNew = new-object System.IO.FileInfo($file)
if(![System.IO.File]::Exists($FilePath) ){
#Write-Output "Writing $file"
[System.IO.File]::Copy($file, $FilePath)
Set-DateAttributes -OriginalFilePath $file -TargetFilePath $FilePath
}
else{
$FileInfoExisting = new-object System.IO.FileInfo($FilePath)
$FileInfoNew = new-object System.IO.FileInfo($file)
#setattributes
Set-DateAttributes -OriginalFilePath $file -TargetFilePath $FilePath
}
}
foreach($dir in [System.IO.Directory]::GetDirectories($sourceDir) ){
$test = [System.IO.Path]::Combine($targetDir, (New-Object -TypeName System.IO.DirectoryInfo -ArgumentList $dir).Name)
CopyInfo -sourceDir $dir -targetDir $test
}
}
#Copy files from source to target
CopyInfo -sourceDir $Source -targetDir $FolderName
function Set-DateAttributes{
[CmdletBinding()]
param(
[Parameter(Mandatory=$true,Position=0,ValueFromPipeline=$true)]$OriginalFilePath,
[Parameter(Mandatory=$true,Position=1,ValueFromPipeline=$true)]$TargetFilePath
)
BEGIN{
}
PROCESS{
[System.IO.FileInfo] $fi = New-Object System.IO.FileInfo -ArgumentList $originalFilePAth
[System.IO.File]::SetCreationTime($targetFilePath,$fi.CreationTime)
[System.IO.File]::SetLastWriteTime($TargetFilePath,$fi.LastWriteTime)
[System.IO.File]::SetLastAccessTime( $TargetFilePath,$fi.LastAccessTime)
}
END{}
}
#Set-DateAttributes -OriginalFilePath "D:\CloudOD\OneDrive\Soporte Curriculum\Taller-Big-Data.pdf" -TargetFilePath "D:\Cloud\Dropbox\Desktop\123\Taller-Big-Data.pdf"
CopyInfo -sourceDir $source -targetDir $target
#D:\CloudOD\OneDrive\Soporte Curriculum
#D:\Cloud\Dropbox\Desktop\destTest
[CmdletBinding()]
param(
[Parameter(Mandatory=$true,Position=0)]$source,
[Parameter(Mandatory=$true,Position=1)]$target
)
function CopyInfo{
[CmdletBinding()]
param(
[Parameter(Position=0,mandatory=$true)] [string]$sourceDir,
[Parameter(Position=1,mandatory=$true)] [string]$targetDir
)
if(! [System.IO.Directory]::Exists($targetDir) ){
[System.IO.Directory]::CreateDirectory($targetDir) | Out-Null
}
#get source files
foreach($file in [System.IO.Directory]::GetFiles($sourceDir) ){
$FilePath=[System.IO.Path]::Combine($targetDir, [System.IO.Path]::GetFileName($file))
$FileInfoNew = new-object System.IO.FileInfo($file)
if(![System.IO.File]::Exists($FilePath) ){
#Write-Output "Writing $file"
[System.IO.File]::Copy($file, $FilePath)
Set-DateAttributes -OriginalFilePath $file -TargetFilePath $FilePath
}
else{
$FileInfoExisting = new-object System.IO.FileInfo($FilePath)
$FileInfoNew = new-object System.IO.FileInfo($file)
#setattributes
Set-DateAttributes -OriginalFilePath $file -TargetFilePath $FilePath
}
}
foreach($dir in [System.IO.Directory]::GetDirectories($sourceDir) ){
$test = [System.IO.Path]::Combine($targetDir, (New-Object -TypeName System.IO.DirectoryInfo -ArgumentList $dir).Name)
CopyInfo -sourceDir $dir -targetDir $test
}
}
#Copy files from source to target
function Set-DateAttributes{
[CmdletBinding()]
param(
[Parameter(Mandatory=$true,Position=0,ValueFromPipeline=$true)]$OriginalFilePath,
[Parameter(Mandatory=$true,Position=1,ValueFromPipeline=$true)]$TargetFilePath
)
BEGIN{
}
PROCESS{
[System.IO.FileInfo] $fi = New-Object System.IO.FileInfo -ArgumentList $originalFilePAth
[System.IO.File]::SetCreationTime($targetFilePath,$fi.CreationTime)
[System.IO.File]::SetLastWriteTime($TargetFilePath,$fi.LastWriteTime)
[System.IO.File]::SetLastAccessTime( $TargetFilePath,$fi.LastAccessTime)
}
END{}
}
#Set-DateAttributes -OriginalFilePath "D:\CloudOD\OneDrive\Soporte Curriculum\Taller-Big-Data.pdf" -TargetFilePath "D:\Cloud\Dropbox\Desktop\123\Taller-Big-Data.pdf"
CopyInfo -sourceDir $source -targetDir $target