0

我正在尝试做一些非常奇怪的事情。可以分析任何替代解决方案,但我正在工作的过程很难改变。

我有一个要部署在 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*" }

任何帮助或建议将不胜感激!问候

4

1 回答 1

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 设置为您的部署目录,然后让她 rip。

于 2013-07-23T20:56:37.223 回答