我正在开发项目,如果目标上已存在相同的文件,则部署工具会自动添加“.update”扩展名。 e.g。
root
web.config
web.config.update
connection.config
connection.config.update
我想通过powershell执行以下后期部署:
用* .update文件替换现有的* .config。 以下是所需的输出:
根 web.config中 web.config.update CONNECTION.CONFIG connection.config.update 根 web.config中 CONNECTION.CONFIG 备用 web.config中 CONNECTION.CONFIG
有人可以帮助使用PowerShell来实现上述目标吗?
答案 0 :(得分:4)
以下代码可以执行您想要的操作。
通过删除现有配置文件并重命名更新文件来替换现有配置文件。
$root_folder = 'c:\temp\root'
# Create a backup folder
$backup_directory = New-Item -Path "$root_folder\backup_$(Get-Date -Format yyyyMMdd)" -Force -ItemType Directory
Get-ChildItem -Filter *.config | ForEach-Object {
# Copy .config files to the backup directory
Copy-Item -Path $_.FullName -Destination "$($backup_directory.Fullname)" -Force
# Delete the file from the source directory
$_ | Remove-Item
# Rename the .update files to .config files.
Rename-Item -Path "$($_.FullName).update" -NewName $_.FullName -Force
}