使用 MsDeploy-Sync 在本地只复制一个文件
using MsDeploy-Sync to copy only one file locally
目前我正在本地复制所有$DeploymentPath
(文件夹),然后
删除其中的所有文件,除了我想要的 1 个文件。
MsDeploy-Sync `
-SourceContentPath:"$DeploymentPath" `
-DestinationContentPath:"$SupportFolder/WebPages" `
Get-ChildItem "$SupportFolder\WebPages" -Exclude "web.config.js" |
Remove-Item
我想做的事情:
只在本地复制 1 个文件 web.config.js
,如果那里不存在,return false。
- 我正在
ps1
文件中编写这段代码,但我必须使用 MsDeploy
命令。
可能吗?
首先,您应该使用 Join-Path cmdlet 在 PowerShell 中组合路径。
要检查文件是否存在,只需使用 Test-Path 命令:
$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
}
目前我正在本地复制所有$DeploymentPath
(文件夹),然后
删除其中的所有文件,除了我想要的 1 个文件。
MsDeploy-Sync `
-SourceContentPath:"$DeploymentPath" `
-DestinationContentPath:"$SupportFolder/WebPages" `
Get-ChildItem "$SupportFolder\WebPages" -Exclude "web.config.js" |
Remove-Item
我想做的事情:
只在本地复制 1 个文件 web.config.js
,如果那里不存在,return false。
- 我正在
ps1
文件中编写这段代码,但我必须使用MsDeploy
命令。
可能吗?
首先,您应该使用 Join-Path cmdlet 在 PowerShell 中组合路径。
要检查文件是否存在,只需使用 Test-Path 命令:
$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
}