使用MsDeploy-Sync在本地仅复制一个文件

时间:2016-06-08 17:25:52

标签: powershell powershell-v3.0

目前我正在本地复制所有$DeploymentPath(文件夹),然后 删除其中的所有文件,除了我想要的1个文件。

MsDeploy-Sync `
       -SourceContentPath:"$DeploymentPath" `
       -DestinationContentPath:"$SupportFolder/WebPages" `

Get-ChildItem "$SupportFolder\WebPages" -Exclude "web.config.js" |
  Remove-Item

我想做什么:

在本地仅复制1个文件web.config.js,如果该文件不存在,则返回false。

  • 我正在ps1文件中编写这段代码,但我必须使用MsDeploy命令。

有可能吗?

1 个答案:

答案 0 :(得分:1)

首先,您应该使用Join-Path cmdlet在PowerShell中组合路径。

要检查文件是否存在,只需使用Test-Path cmdlet:

$webConfigPath = Join-Path $SupportFolder '\WebPages\web.config.js'
if (Test-Path $webConfigPath)
{
     MsDeploy-Sync `
        -SourceContentPath (Join-Path $DeploymentPath 'web.config.js') `
        -DestinationContentPath (Join-Path $SupportFolder 'fromServer_web.config.js')
}
else
{
    $false # return $false
}