ฉันมีสคริปต์นี้ซึ่งเปรียบเทียบไฟล์ในสองพื้นที่ของดิสก์และคัดลอกไฟล์ล่าสุดกับไฟล์ที่มีวันที่แก้ไขเก่ากว่า
$filestowatch=get-content C:\H\files-to-watch.txt
$adminFiles=dir C:\H\admin\admin -recurse | ? { $fn=$_.FullName; ($filestowatch | % {$fn.contains($_)}) -contains $True}
$userFiles=dir C:\H\user\user -recurse | ? { $fn=$_.FullName; ($filestowatch | % {$fn.contains($_)}) -contains $True}
foreach($userfile in $userFiles)
{
$exactadminfile= $adminfiles | ? {$_.Name -eq $userfile.Name} |Select -First 1
$filetext1=[System.IO.File]::ReadAllText($exactadminfile.FullName)
$filetext2=[System.IO.File]::ReadAllText($userfile.FullName)
$equal = $filetext1 -ceq $filetext2 # case sensitive comparison
if ($equal) {
Write-Host "Checking == : " $userfile.FullName
continue;
}
if($exactadminfile.LastWriteTime -gt $userfile.LastWriteTime)
{
Write-Host "Checking != : " $userfile.FullName " >> user"
Copy-Item -Path $exactadminfile.FullName -Destination $userfile.FullName -Force
}
else
{
Write-Host "Checking != : " $userfile.FullName " >> admin"
Copy-Item -Path $userfile.FullName -Destination $exactadminfile.FullName -Force
}
}
นี่คือรูปแบบของ files-to-watch.txt
content\less\_light.less
content\less\_mixins.less
content\less\_variables.less
content\font-awesome\variables.less
content\font-awesome\mixins.less
content\font-awesome\path.less
content\font-awesome\core.less
ฉันต้องการแก้ไขสิ่งนี้เพื่อหลีกเลี่ยงการทำเช่นนี้หากไฟล์ไม่มีอยู่ในทั้งสองพื้นที่และพิมพ์ข้อความเตือน ใครช่วยบอกฉันหน่อยได้ไหมว่าฉันจะตรวจสอบไฟล์โดยใช้ PowerShell ได้อย่างไร