您的位置:首页 > 运维架构 > Shell

[PowerShell]template engine

2015-08-24 15:24 621 查看
今天讨论的是如何在Powershell里实现一个简单的Template Engine的功能。

假设模板文件的内容如下:template.tt

hello $name
welcome $company


模板引擎的函数定义在Invoke-Template.ps1

function Invoke-Template {
param(
[string]$Path,
[Scriptblock]$ScriptBlock
)
function Get-Template {
param($TemplateFileName)

$content = [IO.File]::ReadAllText(
(Join-Path $Path $TemplateFileName) )

$res = Invoke-Expression "@`"`r`n$content`r`n`"@"
return $res
}
& $ScriptBlock
}


调用的Powershell script是

. .\Invoke-Template.ps1
$root = $PSScriptRoot
$res = invoke-Template -Path $root -scriptblock {

$name="andy"
$company="hp"
Get-Template tempalte.tt
}

$res


输出为

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: