我正在尝试做一些非常奇怪的事情。可以分析任何替代解决方案,但我工作的过程很难改变。
我有一个要在IIS Web服务器中部署的文件夹。此文件夹可以包含任何文件,如dll,asmx,web.config,.exe等。我们有一个bat脚本执行完整备份,但简单的文件部署可以持续一个小时,因此。
我想要一些实用程序或制作一个powershell脚本来比较要与目标文件夹一起部署的文件夹,并且只备份第一个文件夹中具有相同文件的文件(或文件夹)。这必须以递归方式完成,并且还必须保留目标服务器中的文件夹结构。
编辑:我目前正在开发一个类似这样的PowerShell脚本(我绝对不是PowerShell专家):
Compare-Object $d1 $d2 | Where-Object {$_.SideIndicator -ne "=>" -and $_.InputObject -ne "*.ok*" -and $_.InputObject -ne "*.bat*" }
任何帮助或建议将不胜感激! 此致
答案 0 :(得分:0)
你将无法使用compare-object维护文件结构......我很无聊所以你去吧。
$sPath = "C:\test\"
$dPath = "C:\test2\"
$src = gci -recurse $sPath
$dest = gci -recurse $dPath
$src | % {
foreach($item in $dest) {
$t1 = ($item.FullName).trimStart($dpath)
$t2 = ($_.FullName).trimStart($sPath)
if($t1 -eq $t2) {copy-item $item.FullName $_.FullName -Force}
}
}
只需将$ spath设置为src目录,将$ dPath设置为部署目录,然后将其翻录。