मेरे पास यह स्क्रिप्ट है जो डिस्क के दो क्षेत्रों की फाइलों की तुलना करती है और पुराने संशोधित तारीख के साथ नवीनतम फाइल को कॉपी करती है।
$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
मैं इसे संशोधित करना चाहूंगा ताकि यह करने से बचा जाए यदि फ़ाइल दोनों क्षेत्रों में मौजूद नहीं है और चेतावनी संदेश प्रिंट करता है। क्या कोई मुझे बता सकता है कि पावरशेल का उपयोग करके कोई फ़ाइल मौजूद है तो मैं कैसे जांच सकता हूं?