[英]check if file in folder already exist based on conditional statment
我有两个文件夹
两个文件夹都包含带有不同编号文件名的* .txt文件(例如01.txt,02.txt ... 10.txt)
该脚本将比较两个文件夹中存在的文件。 然后仅将“文件夹2”中没有的文件从“文件夹1”复制到C:\\ TestFolder,反之亦然。
例如,如果:
然后02.txt将是唯一复制到C:\\ Testfolder的文件。
我将修改以下脚本以添加以下功能:
基本上,我需要检查Folder1中存在的文件是否已经存在于Folder2中。 还要验证此文件是否相同,或者Folder2中是否存在一个或多个文件。
Compare-Object $Folder1 $Folder2 -Property Name, Length , LastWriteTime | Where-Object {$_.SideIndicator -eq "<="} | ForEach-Object {
Copy-Item "C:\Source\$($_.name)" -Destination "C:\TestFolder" -Force -recurse -include "*.txt"
}
$folder1="c:\folder1"
$folder2="c:\folder2"
$dest="c:\testfolder"
$folder1Files=dir $folder1
$folder2Files=dir $folder2
$newestFileFolder2=$folder2Files | sort LastWriteTime | select -expand LastWriteTime -Last 1
$equalFiles=diff $folder1Files $folder2Files -Property Name,Length -ExcludeDifferent -IncludeEqual -PassThru | select Name,LastWriteTime,FullName
foreach ($file in $equalFiles){
#If the file present in Folder1 is newer then "all" the files in Folder2: do nothing
if ($file.LastWriteTime -lt $newestFileFolder2){
#If the file in the Folder1 is newer then "some" of the file on the Folder2: copy the newer files to Folder3.
if ((dir "$folder2\$($file.Name)").LastWriteTime -gt $file.LastWriteTime){
copy "$folder2\$($file.Name)" $dest -Force -recurse -include "*.txt"
}
else{
copy "$($file.FullName)" $dest -Force -recurse -include "*.txt"
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.