我正试图做一些非常奇怪的事情。任何替代方案都可以进行分析,但我工作的过程很难改变。
我有一个文件夹要部署在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*" }
如有任何帮助或建议,我们将不胜感激!问候
您将无法使用compare对象来维护文件结构。。。我很无聊,所以给你。
$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设置为您的部署目录,然后让她翻录即可。