用于复制和替换web.config的Powershell脚本

时间:2018-02-01 02:25:07

标签: powershell tfs powershell-v2.0 tfsbuild powershell-v3.0

我想要一个powershell脚本将文件从源文件复制到中间文件夹,然后从中间文件夹复制到目标文件夹。在目标文件夹中,已经有一个配置文件。所以想要替换目标文件夹中的web.config文件。

这就是我的尝试:

首次尝试:

$src = "C:\Websites\CTABS\CTABSEQA2014\Web.config" 
$dst = "C:\2014_VCI_TEMP\" 

Get-ChildItem $src -Filter "txt.*.test.*" -Recurse | % { 
    #Creates an empty file at the destination to make sure that subfolders exists 
    New-Item -Path $_.FullName.Replace($src,$dst) -ItemType File -Force 
    Move-Item -Path $_.FullName -Destination $_.FullName.Replace($src,$dst) -Force 
}

第二次尝试:

$src = "C:\2014_VCI_TEMP\Web.config" 
$dst = "C:\Websites\CTABS\CTABSEQA2014\"

Get-ChildItem $src -Filter "txt.*.test.*" -Recurse | % { 
    #Creates an empty file at the destination to make sure that subfolders exists 
    New-Item -Path $_.FullName.Replace($src,$dst) -ItemType File -Force 
    Move-Item -Path $_.FullName -Destination $_.FullName.Replace($src,$dst) -Force 
}

1 个答案:

答案 0 :(得分:0)

无需创建文件来检查文件夹是否存在,只需使用Test-Path:

$src = "C:\2014_VCI_TEMP\Web.config" 
$dst = "C:\Websites\CTABS\CTABSEQA2014\\"

if((Test-Path $dst) -and (Test-Path $src))
{
    Copy-Item -LiteralPath $src -Destination $dst -Force
}
else
{
    Write-Output "Folder or file does not exist"
}

这将首先检查路径和文件,如果它们存在,它将复制文件。